• 締切済み

文字コードの変換

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

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

jcode.phpを使うよろし。 require("jcode.php"); $euc = SJIStoEUC($sjis); $sjis = EUCtoSJIS($euc); # でも、最初からEUCでサイトを構築しておいた方が良いかもですよ。

関連するQ&A

  • 文字コード変換

    SJISで取得したダブルバイト(日本語)の文字列を EUCで表示したいのですが どのようにすればSJISの文字列をEUCの文字列に変換することができるのでしょうか?

    • 締切済み
    • PHP
  • 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
  • .NET 文字コードの変換

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

  • 文字コードの変換方法

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

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

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

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

    PHP4.4を使っています。 プログラム中の文字列変数値「標の鷹」から、 http://xxx.cgi?prm=%95W%82%CC%91%E9 という文字列(リンク)を生成したいのですが、 http://xxx.cgi?prm=�W�̑� のようになってしまいます。 ソースは以下の通りです。 $img_url = "http://xxx.cgi?prm=".$row[0]; mb_detect_order("ASCII, JIS, UTF-8, eucJP-win, EUC-JP, SJIS-win, SJIS"); $enc = mb_detect_encoding($row[0]); // この時点で$row[0]=「標の鷹」 if ( ($enc != "ASCII") && ($enc != "JIS") && ($enc != "UTF-8") && ($enc != "eucJP-win") && ($enc != "EUC-JP") && ($enc != "SJIS-win") && ($enc != "SJIS") ) {   echo "未知の文字コードが入力されました。<br />\n";   exit; } $url = mb_convert_encoding($url,"SJIS",$enc); echo "url = ".$img_url."; ※ちなみに、このコードが書いてあるphpファイルはutf8です。

    • ベストアンサー
    • PHP
  • includeファイルの文字コードについて

    お世話になります。 PHPでのincludeファイルのことで考えています。 SJISコードで保存されたファイルを、EUCで書かれ ましたPHPプログラムで、文字化けをせずに読み込む 事は可能なのでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 文字化け(違う文字コードで保存すると不可逆?)

    テキスト・エディタでSJISのテキスト・ファイルをEUCとして開き(この時点で文字化けしてたのですが、それに気付かず)、誤ってそのまま保存してしまいました。 しかも大量のファイルを・・・。 日本語が文字化けしてしまったのですが、これを修復することはできるでしょうか? 一応、EUCのファイルをもう一度SJISで保存し直してみたり、エンコードを読み変えるソフトなどを試してみたのですが、結果はダメでした。 具体的には、以下の手順でやってしまいました。 1.秀丸でSJISファイル(PHPスクリプト)を開く 2.拡張子関連付け(PHPファイル=EUC)によって、開いた時はEUCモード(この時点で文字化け) 3.そのまま(EUCファイルとして)上書き保存 どなたか、修復の方法が分かる方、教えてください・・・・

  • 文字コードについて

    会社でさまざまな文字コードを扱っております。IBM漢字富士通日立EUCなどなど・・ SJIS・EUCはかわいくWINDOWSで扱えるので問題ないんですが、その他は専用マシン・専用ソフトウェアで変換したりほんとにたいへんです、仕事時間の半分は文字コードに費やしているような気がします。 文字コード変換の専用マシン・専用ソフトウェアの性能向上はともあれ、テキストエディタは中国語・韓国語の文字コードに対応しているくらいですから、なんとか富士通漢字とかに対応できるように、作れないでしょうか。例えばデータベース作ったりとか。 どんなことでもいいんで、お願いいたします。

  • 中国語が文字コード変換で、一部文字化けする。

    PHPとMySQLで中国語のサイトを作っているのですが、データベースから読み出した文字列が、GB2312に変換後一部の文字だけ「?」になってしまいます。 このサイトでは中国語以外に、既に日英のサイトがあってそれらは、 日:WEB = SJIS / DB = EUC 英 : WEB = UTF-8 / DB = EUC 中 : WEB = GB2312 / DB = EUC という構成になっています。 ちなみに管理者画面では、日、英、中、全てのコンテンツを編集できるようになっていて、文字コードは、shift-jisにしてあります。 ですので、中国語のコンテンツを書き出すときは、 管理者画面:shift-jis ↓ PHP処理:EUCに変換 ↓ DB:EUCで登録 ↓ DB:EUC ↓ PHP処理:GB2312に変換 ↓ HTMLに書き出し という流れになっています。 中国語のサイトを作られている方は少ないと思いますが、分かる範囲でアドバイスをいただければと思います。よろしくお願い致します。

    • ベストアンサー
    • PHP