• ベストアンサー

文字コードの変換方法

お世話になります。 サーバ上で生成した、文字コードがEUCのテキストファイルをSJISに文字コードを変換したいのですが、nkfコマンドが使用できません。 nkfコマンドを使用せず、EUC⇒SJISへ文字コードを変換する方法をご教示頂けますでしょうか。 また文字コードを変更すれば改行コードの変更はしなくてもいいのでしょうか。 宜しくお願い致します。

  • Revit
  • お礼率38% (13/34)

質問者が選んだベストアンサー

  • ベストアンサー
  • plantarum
  • ベストアンサー率53% (42/79)
回答No.1

文字コードについては、下記の解決策があります。 1. nkfを入手する 2. iconvコマンドで変換する <例> % iconv -f EUC-JP -t Shift_JIS < infile.txt > outfile.txt なお文字コードは改行コードとは別物です。

Revit
質問者

お礼

>2. iconvコマンドで変換する を実行しましたら、無事文字コードの変換ができました! 購入したコマンドリファレンス本に最初からiconvコマンドが載っていればよかったのですが・・・。 「文字コード 変換」等のキーワードでネットで検索してもiconvコマンドはヒットしなかったので、本当に助かりました。 ありがとうございました。 ただ、改行コードの変換を行うにはどうしたらいいでしょうか。 % perl -pe 's/\n/\r\n/'や trコマンドで変換を試みましたが、駄目でした。

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

あー、perlは(POSIXとかSUSでいうところの)UNIXの一部じゃないですからねえ。 ただし、perlがインストールされているのであれば、 perlが独自に持っているオンラインドキュメントが参照できるようになっていると思います。 とりあえずコマンドラインで perldoc perlrun とか perldoc perldoc ってやってみてください。 前者でコマンドラインオプションなどの説明、 後者はオンラインドキュメントの使い方などがわかります。 perldoc.jp にいって探してみれば、日本語化されている ドキュメントもありますのでどうぞ。

Revit
質問者

お礼

ご回答ありがとうございます。 お教え頂いたドキュメント参考にします。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

改行コードの変換ですが、dos2unixとかunix2dos という名前のコマンドはありませんか? それからPerlでやる場合ですが、 perl -pi.bak -e 's/\n/\r\n/' file ではどうでしょう? #バックアップファイルを作って直接書き換えます

Revit
質問者

お礼

ご教示頂いたperl -pi.bak -e 's/\n/\r\n/' file で実行しましたら、改行コードの変換ができました。 助かりました! ありがとうございます。 perlってunixのコマンドリファレンスでいくら調べても出てこないのですが・・・。 宜しければ、perlコマンドの使用方法が載っているサイトなどありましたら お教えいただけませんでしょうか。 重ねてのお願いで申し訳ありませんが、宜しくお願い致します。

関連するQ&A

  • UNIX上で文字コードの一括変換はできますか?

    UNIX上で、文字コードを変換したいのですが、今まではSJISからEUCといった変換にnkfを使用してきましたが、nkfだと1ファイル毎でしか文字コードを変換できませんでした。1行のコマンドでそのディレクトリ内の全てのファイルの文字コードを変換してくれるコマンドはありますでしょうか? UNIX上で実現できれば、Perlでもなんでも結構です。よろしくお願いします。

  • Solarisの文字コードについて

    Solaris8をインストールしました。 文字コードはEUCになっていると思いますが、テキストファイルを EUCでSolaris8サーバにアップロードしてもviで参照すると文字化けしてしまいます。 (1)システムの文字コードの確認方法を教えて下さい。 (2)文字コードをSJISからEUCに変換する方法を教えて下さい。 (nkfコマンドを打ってもcommand not foundになります。。標準ではインストールされないのでしょうか?) p.s OSのインストール時、下記のように入力しました。 ・Select a Locale →0.Japanese EUC(ja) ・ソフトウェアの対応地域 →アジア・Japanese EUC(ja)、Japanese PC Kanji(ja_JP.PCK)、Japanese UTF-8(ja_JP.UTF-8)

  • 文字コードの変換について教えてください

    文字コードUTF-16、Little-Endian、改行コードCR/LF、BOMのデータを読み込み、 シフトJISに変換して処理するため、次のようにしたのですが、 中ほどのデータが消えてしまいます。 何か間違っていますか? require 'nkf' ... text = file_in.read text_shiftjis = NKF.nkf('-sW16L',text)  p text_shiftjis #確認用出力

    • ベストアンサー
    • Ruby
  • Mysqlの文字コード変更

    TurboLinux Server8に付属のMysqlを使用しています。 現在EUCで使用しており、これをSJISに変更したいと思います。 そこで下記をお教えください。 1:文字コードの変更はmy.cnfファイルを変更するだけでいいのでしょうか? それともインストールし直しになりますでしょうか? 2:データはnkfなどで変更してインポートすれば問題ありませんか? 他に何か必要な事項等ありましたらお教え下さい。 宜しくお願い致します。

  • 文字コードの変換

    現在PHPの学習を行っているのですが、文字コードの変換方法が分かりません。 入力した文字列と、保存してあるテキストの中の文字列を比較するプログラムを作ったのですが、 英語は比較できるのですが、日本語は比較できません。 私たちが考えている問題としては、入力した文字がSJISなので、EUCで作ったプログラム内で動作しません。 どうしたら、入力した文字をEUCに変換することができるのか教えていただくことはできないでしょうか?

  • 文字コード変換、改行コード変換をn件ずつ実効

    UNIX初心者です。 指定ファルダにあるファイルについて 文字コード変換、改行コード変換を一括で行ないたいです。 しかし、以下のコマンドではファイル数が多すぎて、一括変換が出来ません。 find . -type f -print0 | xargs -0 nkf --overwrite -s --windows いい方法ありましたら、ご教示いただきたいです。 よろしく御願いします。 (具体例をだしていただけると助かります)

  • Windows標準機能での改行コード変換方法について

    いつも利用させて頂いております。 nopo3です。 掲題の通りなんですが、 Windows上で作成したファイル(SJIS/CRLF)の 文字コード、改行コードをEUC/LFに変換したいと 思っています。 フリーソフト等で変換をする事は可能ですが、 実際にWindows標準機能で変換する方法はあるのでしょうか? テキストをIEで開き、エンコードをすれば、文字コードは変換されるのですが、改行コードを変換することができませんでした。 スクリプトを組まないと駄目なんでしょうか? 御教授御願致します。

  • .NET 文字コードの変換

    VB2008で文字列を他の文字コードにする方法が知りたいです。 何かしての部分がわかりません。 VB2005でも使えるものだったらうれしいです。 Dim str_sjis as string Dim str_euc as string = "パソコン" '例えばEUC-JP '''何かして str_sjisにシフトJISで文字列が入っている。 .Netの文字コードの変換の仕方がごちゃごちゃして分かりづらいです。

  • 文字コードの変換について

    現在、表示はPHPで文字コードはEUCで表示しています。 そのときには表示できるのですが、 表示したものを、SHIFT-JISにエンコードしてエクセルに表示するときに、文字コードの違いにより表示されないものがあります。 エンコードは $str = mb_convert_encoding($str, "SJIS", "auto"); と行っています。 EUCからSJISに変換するときに、何か特別なことを行う必要があるのでしょうか??

    • ベストアンサー
    • PHP
  • ファイルのコード変換(EUCからSJIS)するコマンドは?

    OS:Windows Server 2003 コマンドラインベースで、EUCコードのファイルをSJISコードに変換するコマンドを教えていただけないでしょうか?