- ベストアンサー
PHP4の文字コード
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
キチンと文字コード設定をする(mb_internal_encodingとか)のであれば、EUC-JPでもUTF-8でもかまいません。 #ただしUTF-8はメモ帳で保存しないこと(BOMが付くので)。 Shift_JISはマニュアルでも非推奨ですから、よほどのことがなければ(あっても)使いませんが、他の文字コードは気にするような問題はありませんね。
その他の回答 (2)
- kalze
- ベストアンサー率47% (522/1092)
むしろ許されるのであれば、UTF-8のほうを推奨しますが、EUC-JPでも問題はありません。 Shift-Jisはいろいろと問題が起こるので避けたほうがよいです。 php.iniなどの設定とソースの文字コードを正しく設定しておけば、UTF-8でもEUC-JPでもめったに問題が起こることはありません。 最終的に吐き出されるHTMLを携帯向けなどでShift-Jisにしたい場合は、内部的にはUTF-8などで処理し、レスポンスを返す時にShift-Jisにエンコードしてやるのが一般的です
- inu2
- ベストアンサー率33% (1229/3720)
UTF-8でもいいですよー 昔はshift_jisの文字化け(5C問題など)の回避策としてEUC-JPを使いましょう!って時代があったってだけで、今のご時勢であれば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国際化の文字コード 初心者です。 PHPで実装されている既存のWebサイトの国際化を行う予定です。文字コードはEUC-JPです。 文字コードをEUC-JPのまま、ブラウザの言語設定等によって英語でも表示するよう改修を行う場合、海外のPCで日本語を表示したい人、または英語を表示したい人は正しく表示できるのでしょうか?あるいはUTF-8への全面変更等を考慮しないといけないのでしょうか? 知識不足で恐縮ですが、ご教授願います。
- ベストアンサー
- PHP
- 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+MYSQLでの文字コードによる文字化け
お世話になっております。 PHP+MYSQLの構成でDBに登録、DBから参照→表示といったアプリケーションを作っているのですが質問があります。 文字コードを意識せずに、”Shift-JIS”でPHPやhtmlのコードを書いていたのですが、仕様上問題があることに気づいたので今まで書いたソースの文字コードを”EUC-JP”に変更することになりました。 フリーで複数のテキストファイルをShift-JIS→EUCに一括変換するソフトがあるので、そのソフトを使ってEUCの文字コードに変換したところ、ソース中の日本語(全角)が文字化けしてしまいました。 #どの変換ソフトを使っても同様の結果になります ブラウザー上で表示すると問題ありませんが、今後ソースをいじるときに非常に不便です。目的としては、「ソースの文字コードをShift-JISに変換」かつ「ソース内の日本語(全角)の文字化けを起こさない」方法をご存知の方は是非ご教授お願い致します。
- ベストアンサー
- MySQL
- phpのソースによって、文字化けしてしまいます
お世話になっております。 PHPとMySQLを利用しております。php.iniでPHP 、my.cnfでMySQL、それぞれの文字コードを「日本語EUC」に設定し、問題なく動作しております。 ただ、PHPスクリプトのソースコードが日本語EUCでない場合、出力結果が???????のように文字化けしてしまいます。 PHPスクリプトのソースの文字コードが、日本語EUCであっても、シフトJISであっても文字化けしないようにするには、どのように設定したらよいでしょうか。 初心者であり、困っております。 どなたか、お助けいただくことはできますでしょうか。 どうか、よろしくお願いいたします。
- ベストアンサー
- PHP
- phpの文字コードは
単純に、phpファイルの文字コードは何が良いのでしょうか? 参考サイトには UTF-8やEUC-JPのどちらかで記述しましょうという 記事が多いですが、結局どっちでもいいのでしょうか? できれば理由を知りたいです
- ベストアンサー
- PHP
- PHPとmysqlでの文字化けについて
現在PHPとMySQLを利用したwebシステムを作成しています。 しかし文字化けが発生して困っています。こちらの環境は PHP5.1.4 MySQL5.1.11 phpMyAdmin - 2.8.0-rc1 レンタルサーバー(xrea)を使っています。 自分でいろいろと調べたところ文字のエンコードはujisに統一したほうがいいとのことまではわかりました。 show variables like "char%"; を実行したところ character_set_client utf8 character_set_connection sjis character_set_database ujis character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 このように表示されます。 PHPの方も <?php header('Content-Type:text/html; charset=EUC-JP'); ?> や <?php $str = mb_convert_encoding($str, "EUC-JP", "auto"); ?> を実行しても日本語の部分は???で表示されてしまいます。 いろいろと調べたのですが、さっぱり原因がわかりません。 よろしくお願いします。
- 締切済み
- MySQL
- 文字コード変換
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
補足
UTF-8に完全対応しているのは、PHP5からと聞いたことがあるのですが、PHP4(4でもいろいろバージョンありますが)はOKなのでしょうか?