• ベストアンサー

文字コードの変換

今、C言語の勉強をしているのですが、 EUC-JPの文字コードのファイルを読み込んでUTF-8の文字コードのファイルに変換したい場合はどうすればいいのでしょうか? それか、ファイルに書き込む時に文字コードをEUCーJPからUTFー8に変換して出力する方法でもいいです。 調べ足りないのかもしれませんが色々調べてもよくわかりませんでした。 よろしくお願いします。

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

  • ベストアンサー
回答No.2

自分ではつかったことないのでまったく自信無ですが… ここにサンプルコードがあります http://www.slogical.co.jp/tech/unixc_iconv.html #nkf呼んだ方が早いような…

その他の回答 (4)

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.5

#3 の方と基本的に同意見ですが,(日本語) 文字コードを理解したいのであれば, EUC-JP → UTF-8 よりもまず,EUC-JP (補助漢字を除く) ⇔ Shift_JIS の方を 先に作ってみることをおすすめします. EUC-JP → UTF-8 変換は,単に表を引くだけですので,あまり日本語文字コードの 勉強にはならないと思います.EUC-JP (補助漢字を除く) ⇔ Shift_JIS 変換は, コード値の範囲や変換ロジックを理解することで,日本語文字コードの理解が深まると思います.

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

環境が書かれていないので、一般論として回答します。 EUC-JPとUTF-8の相互変換は計算で行うことができません。したがって、何らかの形で変換表を作成する必要があります。 メモリ効率を無視して、最も手っ取り早い方法は、EUC-JPの16ビットの変換テーブルを作ってしまう方法です(補助漢字等に対応するならもう一枚必要)。

回答No.3

C言語の勉強ということで文字コード変換のロジックを自作したいのか、文字コード変換処理を組み込みたいのか、単に何かの都合で文字コードを変換できればいいのかで回答が変わってくるかと思います。 最初の場合には、文字コード変換を行うオープンソースのライブラリなどを参考にされるといいかと思います。 二番目の場合には同じくそのライブラリを静的リンクしてプログラムで利用すると言う方法です。 最後はその手のコマンドはフリーソフトでもたくさんあるのでお好みで使っていただければと思います。

回答No.1

シンプルな回答で恐縮ですが、  ネットにつなげた状態で 上の「表示」→「エンコード」→「その他」の項目の 中に「Unicode(UTF-8)」 とありますが、これの事でしょうか?

関連するQ&A

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

    PHPで mb_convert_encodingを用いて UTF-8で記述されたPHPスクリプトファイルの PHPファイル内の任意の文字列の文字コードを変換する場合、 $value = "文字列"; $str = mb_convert_encoding($value ,"UTF8","UTF8"); print $str; この場合、特に問題なく、変換がおこなわれます というか、意味のないで処理ではありますが。 次に $str = mb_convert_encoding($value,"EUC-JP","EUC-JP"); とした場合 うまく文字列の文字コードの変換がおこなわれず 出力内容は文字化けします。 次に $str = mb_convert_encoding($value,"SJIS","SJIS"); とした場合 EUC-JPと同じく文字コード変換に失敗し 文字化けするだろうとおもいましたが おもいのほかブラウザの文字コードUTF-8のままで文字化けしていないのです。 これはどういう現象でしょうか? たとえば一つ目は UTF8で記述されたPHPファイルの文字列をそのままUTF-8として 変換されせるのですから、問題ないはずです。結果問題ありません。 二つ目は UTF-8でかかれたPHPファイルの文字列をEUC-JPでかかれたファイルとして EUC-JPという文字コードに変換しなさいという命令ですよね? これは思う通りにいかなくて文字化けした文字列が出力されるのはわかるのですが 三つ目はUTF8で記述された文字列をSHIFT-JISとしてSHIFT-JISに変換しようとしているにも かかわらず、結果問題なくブラウザのUTF-8で文字列と表示されてしまいます。 これはいったいどういう事なのでしょうか? これが仮に $str = mb_convert_encoding($value,"SJIS","UTF-8"); なら話は簡単んです。 UTF-8で記述されたファイルの任意の文字列を UTF8からSJISに変換しようとしているのですから問題なく SHIFT-JISでエンコーディングされた文字列が帰ってくるはずです。 こ乃原因をご存知のかたよろしくご教授ください。 お願い致します。

    • ベストアンサー
    • PHP
  • PHPの文字コード

    phpでの文字コードについて、どうするか迷っています。 perlの時はutf8に統一しましたが、phpの場合、ソースはeuc-jpにして、html出力もeuc-jpにする例が多いのですが、私としては、ソースはutf8にしてhtml出力もutf8にしようと考えています。 理由は、半角カナやIBM拡張文字などはeuc-jpでは使えないためです。 みなさんにお聞きしますが、utf8ベースで開発した場合、文字列操作や正規表現やDB関係などで困るような具体的な例が知りたいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • mysqlのデータベースの文字コードの変換について

    mysqlのデータベースの文字コードの変換について教えてください。 テストサーバー環境で誤って文字コードUTF-8のデータベースを作成し、文字コードEUC-JPのデータを投入してしまいました。 それでもテストサーバー環境では文字化けせずにウェブアプリを表示できていましたが、テストサーバーのデータをエクスポートすると、テキストエディタで開いた時点で文字化けしています。 (文字コードはUTF-8、EUC-JPのいずれでも) もちろんそのデータを本番サーバーにインポートしても文字化けしてしまいます。 (データベース文字コードはUTF-8、EUC-JPのいずれでも) テストサーバーからデータをエクスポートする前に文字コードを変換することは可能でしょうか? もしくは他に問題を解決する方法はありますでしょうか? ご存知の方がいらっしゃいましたら教えてください。

    • ベストアンサー
    • MySQL
  • EXCELからCSVを作るときに文字コード変換

    sys-jisで作成したEXCELからCSVを作るときに文字コードをutf-8またはeuc-jpに自動変換できるようにすることは可能でしょうか。 あわせて、データが入っているセルには、””が自動で入れることは可能でしょうか。 その場合の方法について教えていただけないでしょうか。 よろしくお願いいたします。

  • Perlの文字コード

    1-2年ほど前、Perl5.8でソース自体をUTF8N(LF)で記述するようになり、 以下のように書いていました。 use utf8; use encoding "utf8"; use Encoding; それからPHPに移り、PHPでは、ソースはEUC-JP、DBもEUC、HTMLに出力する際もEUC-JPで統一していました。 最近またperlを使い出して疑問に思ったのですが、 perlではどのような文字コードで統一すれば一番よいのかということです。 javascriptはUTFだと動作しない端末(ザウルス)などあり、 perlもEUC-JPで統一しようと考えています。 昔、UTF8にこだわったのは、おそらく 「構」という文字は5Cなので、 文字コードによる不具合(ソース,js,cssで)を避けるためと、流行のUTF8にしたと思います。 perlでEUC-JPで文字コード統一させるメリットデメリットが知りたいです。 最近perlで書かれたサイトでHTML出力がShift_JISだったのですが、perlソースもシフトJISかは知りませんが、Shift_JISで統一するデメリットが知りたいです。 あと、WEBでどの文字コードが現在主流で、今後どうなるかも知りたいです。 EUC-JPで安泰なら、話は早いですが・・・

    • ベストアンサー
    • Perl
  • 「髙(はしごたか)」を文字コード変換

    PHPにて、シフトJISで書かれたファイルを読みこみ、文字コードをEUCに変換して出力させる処理を書いています。 mb_convert_encoding($str, "EUC-JP", "SJIS")にて変換させています。 ただ、以下の文字が 髙(はしごたか)、 﨑(たつさき) うまく変換できずに 「?」という文字になってしまいます。 何か解決方法はないでしょうか??

    • ベストアンサー
    • PHP
  • 文字コード変換の場合わけ。

    あるURLのソースの文字コードを判定してUnicodeに変換する メソッドや方法はありませんか? URLによってshiftJISでかかれていたり、EUC-JP で書かれているページがあるのでそれを 判定してUnicodeに変換して出力する方法が欲しいのです。 現在は InputStreamReader isr = new InputStreamReader(is,"EUC-JP"); コンストラクタを用いてコード変換を行っています。 お願いします。

    • ベストアンサー
    • Java
  • 文字コード変換について

    現在、あるWebシステムを開発中なのですが、文字コードについて基本的な質問があります。開発中のシステムでは、データベースはOracleでAL32UTF8(UTF8)を使っています。アプリケーション自体はJavaで開発しています。このWebシステムには以下のように外部システムやファイル経由でデータをロードすることがあります。 (1)ファイル経由でデータをロードする場合 クライアント端末からファイルを読み込ませてそのファイルのデータをデータベースにロードするような動作があります。この際、ファイル自体の文字コードは重要ですか(データベースがUTF8である以上、ファイルがUTF8でないとそのままロードすると文字化けする等の現象がありますか)?基本的にはWindowsクライアントですが、OSのバージョンは多様なので、OSによっては(メモ帳などでデフォルトで保存される文字コードによっては)問題が起こり得るのでしょうか?その場合は、ファイルアップロードの際にUTF8以外の文字コードであるかを自動判別して、UTF8に変換するような必要がありますでしょうか?UNIXではnkfで指定の文字コードに変換できるらしいことは知っていますが、ウェブアプリケーションでそのような自動判別からのUTF8変換など、可能なのでしょうか?コードを教えて頂けると大変助かります。 (2)外部システム経由でデータをロードする場合 メインフレームなど他のシステムから、例えばSOAPなどでインテグレーションする場合にも、文字コードを意識しないとやはり文字化けを招くことになりますか?(文字列が例えばEUCやEBCDICでわたってくる場合は、それをコード変換する必要がありますか?)それはnkfコマンドによるファイル変換のように一発で出来ることなのか、それとも一文字一文字何らかの処理を行うものなのでしょうか?Javaで数行プログラムを書けば済むレベルの話なのか、HULFTなどの高価なツールでないと対応できない話なのか、全く想像がつかないため教えて頂けると大変幸いです。 以上、宜しくお願いします。

    • ベストアンサー
    • Java
  • 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)

  • 文字コードの混在しているファイルの変換

    webのログを取っているのですが, URLデコード -> nkf -s としています.しかし,URLデコードしたファイルは,google等はutf-8で他はs-jis等で,文字コード(s-jis, euc, utf-8)が混在しているファイルとなってしまいます. 最終的な出力ファイルをs-jisに統一したいと思っています.nkfで行おうとしたところ,どうもうまくいきません.-Xs オプションをつけるとutf-8の部分がちゃんと表示されません.-Wsオプションをつけると今度はs-jis,eucが出力されません. なにかうまい方法はありませんか?

専門家に質問してみよう