- ベストアンサー
EUCからUTF-8へのコード変換
いつもお世話になっております。 C++でEUC-JPで書かれた文字列をUTF-8に変換するプログラムを作成したいのですが、変換ルーチン(TBL等)をどのように書けば良いか分かりません。 サンプル等があれば教えて頂けないでしょうか? 提供されているライブラリ等は使用しない(できない)予定ですのでお願いします。
- Pkakedashi
- お礼率61% (8/13)
- C・C++・C#
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
サンプルではなくてソースそのものがあります。 (文字コード変換のオープンソース iconv) http://www.gnu.org/software/libiconv/ 各コードの処理はヘッダに記述されています。 ex. euc_jp.h, utf8.h
関連するQ&A
- UTF-8をわざわざEUC-JPに変換する理由
何か得することとかありますか? サンプルプログラムなんかだと、よく変更しています 私はサイトを全てUTF-8でやっているので、わざわざ変換しなくてもいいかなと思っています でもtxtファイルがUTF-8で記述されていて、なおかつプログラムもUTF-8なのに わざわざEUC-JPに変換してから色々やってるプログラムが多いのです。 これは多分私の認識不足なのか、それとも古い何かに対応する為なのかが分かりません。 まだ勉強始めたばかりなので、何でこんなことと思われるかも知れませんが なにとぞよろしくお願いします。
- ベストアンサー
- PHP
- euc-jpからutf-8の文字コード変換について
現在、何らかのhtmlを取得する際にはurf-8で統一しようと思っているのですが、 たとえば <?php $f=file_get_contents("http://blog.livedoor.jp/dqnplus/")//文字コードEUC-JP; $f = mb_convert_encoding($f,"utf-8","eucjp-win,utf-8,sjis-win,EUC-JP"); echo $f; ?> では、EUC-JPからの変換がうまくいきません。 ……というより、EUC-JPのエンコーディングのみ失敗してしまいます。 (文字化けしたもののみ抽出すると、すべてEUC-JPでした) どのようなコードを書けば、正常にエンコードできるでしょうか。 どなたかご教示のほど、どうかよろしくお願いいたします。
- 締切済み
- PHP
- javaでEUC-JP文字列→UTF-8への変換
DB内にEUC-JPで保存されているデータを取得して、これをUTF-8文字列として扱いたいです。 phpでいうところの$string = mb_convert_encoding($string, "UTF-8", "EUC-JP"); をjavaで実現したいです。 どのように記述すれば変換できるのでしょうか? 検索しても、数十行もコードを書いて実現しているものばかりで、 シンプルな方法が見つかりません。 javaには難しい処理なのでしょうか…
- 締切済み
- Java
- EUCのファイルを開くとUTF-8になる
文字コードがEUCのperlで書かれたCGIをブラウザで表示すると、UTF-8となっています。(自動認識と設定していた場合) その場合は、文字化けしてしまいます。 ブラウザの文字コードをEUCに変更すると、文字化けせず表示されます。 perlプログラムは、EUCで書かれているのに、ブラウザでは(自動認識と設定していた場合)、UTF-8となる理由はどこにあるのでしょうか? perlプログラムでは、METAヘッダにEUC-JPと記述されています。 ちなみに、サーバのOSはCentOSです。(httpd.confでは、UTF-8が設定されています)
- 締切済み
- その他(インターネット・Webサービス)
- EUC_JPにない文字のshiftJISからの変換処理
http://okwave.jp/qa757480.html ここにある質問と同じ状況になっています。 shiftJISの文字列をEUC_JPに変換したところ、 invalid byte sequence for encoding "EUC_JP" というエラーが出ました。 EUCにない文字なので変換が出来ないのはわかるのですが、ではその場合どのような処理が妥当でしょうか。 テキストデータから文字を取り込んでいるので最初から文字をEUC_JPやUTF-8で文字列を作ることができません。 EUCにない文字はどうやっても変換できないので代替文字もしくは記号を置くことで解決しようかと思ったのですが、そうするとどの文字がshiftJISにあってEUCにないかの一覧がないとどうしようもないかと思います。 この場合はどうするのが良いかアドバイスいただけませんでしょうか。
- ベストアンサー
- Perl
- 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
- EUC-JPのファイルをutf-8に変換したい
EUC-JPで書かれたデータをpythonで形態素解析しようと思っています。 pythonにはutf-8がデフォルトとなっているmecabが入っています。 名詞のみを取り出したいのですが、文字コードのせいなのか、条件分岐がうまくできません。 EUC-JPの文章をutf-8で形態素解析すれば整合性がとれてうまくいくとおもうのですが、どのようにすればいいのでしょうか。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- OSの文字コードはUTF-8か?EUC-JPか?どちらがいいでしょうか・・・
この度、CentOS4で自宅サーバを構築しようと思っています。 そこで、確認したいことがあるので、ご意見など頂ければと思います。 CentOS4はシステムの文字コードがUTF-8ですが、これはEUC-JPに変更したほうがいいのでしょうか? サーバの目的としては、知り合い・身内などが使うWEB・FTP・メールサーバ機能を持たせ、Sambaを設定してファイルサーバにもする予定です。 WEBサーバ上では、各人がPHP・Perlによるスクリプトを動かしますし、Tomcatも使います。 私自身も、サンプルなどとしてosCommerceやXPOOSなどのオープンソースのものも動かします。 上記においては、EUC-JPに変更したほうがいいのでしょうか? 今までは、FedoraCore3を使っていましたが、EUC-JPに変更していましたのでEUC-JPにすればいいかもしれませんが、これから作成するPHPやPerlのスクリプトなど今後の変更を考えれば、はじめからUFT-8のほうが良いのかなと思っています。 ただ、他の利用者は、エディタやFTPソフトなど使用しているソフトがUTF-8に対応しているものを使用しているとは限らないので、やっぱりEUC-JPのほうが良いのかなという気もしますし・・・ 皆さんのご意見・アドバイスなど頂けたらと思います。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- PerlでUTF8をEUCに変換
こんにちは、お力を貸して下さい。 OSX上で日本語のファイル名を取得し そのファイル名をeucに変換しようとすると 半濁音付きのカナが文字化けを起こしてしまうのです。 Web上で “$euc = Jcode($euc, 'utf8')->z2h->h2z->euc;” で、できないこともないみたいだったので、さっそくやってみたんですが… 変換したいファイル名は、「1ドキュメント」とします。 -------------------------------------- #!/usr/bin/perl use strict; use Jcode; my $path = "パスがはいっている"; my @files; opendir DIR, $path; @files = grep /^1/ && -f "$path/$_", readdir(DIR); closedir DIR; foreach (@files) { my $euc = $_; $euc = Jcode->new($euc, 'utf8')->z2h->h2z->euc; print "$euc\n"; } exit; -------------------------------------- 結果:1ト〓キュメント やっぱり文字化けしましたTT 新しい解決法がありましたら、よろしくお願いします。
- ベストアンサー
- Perl
お礼
これで何とかできそうです。(解析に時間がかかりそうですが。。。) ありがとうございました。