• ベストアンサー

phpの文字コードは

単純に、phpファイルの文字コードは何が良いのでしょうか? 参考サイトには UTF-8やEUC-JPのどちらかで記述しましょうという 記事が多いですが、結局どっちでもいいのでしょうか? できれば理由を知りたいです

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

今から選ぶなら断然UTF8をお勧めします。 多国語対応や異体字に対応しているので、なにかにつけトラブルになりにくく XMLなど諸々の決まりごとや各種SQLを含む他アプリとの連携などにも有利ですし PHP自体の関数がUTFを前提に書かれていたりするなどほぼ標準だといえます。 EUCを使うメリットは、 ・昔からのしがらみ ・UNIX系言語のコンソールで表示できる ・若干容量が小さくできる など、今から考えている人には特段魅力のあるものではありませんが 場合によってはUTFが下位互換されない部分の保険にはなるかもしれません。

kayomana
質問者

お礼

なるほどです!ありがとうございました~~~

関連する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
  • PHPの文字コード

    PHP初心者です。 環境【WinXP、PHP5、Apache2、エディタはDreamWeaverかPHPエディタ】 あまり詳しくないので、まず文字コードが今ひとつわかりません。 参考書などでPHPはEUCで記述と書いてあるので、エディタの設定で文字コードをEUC,改行コードをLFに設定しています。 ホームページを作成していた時には、metaタグに文字コードを打っていますが、プログラムの場合必要ないんですか?普段はShift-JISで入力しています。それともmetaタグの文字コードをEUCにしなければいけないのでしょうか? 現在、初めて更新履歴を作成しています。PHPファイルをEUCで作成し、テキストファイルをShift-JISで作成したのですが、うまく表示できませんでした。色々試して、PHPもテキストもShift-JISで作成したら、一応表示されたものの、たまに¥マークが勝手に入ってしまいます。 通常Windows環境でPHPファイルを作成する時の文字コードを教えてください。また、この場合はサイト全体(htmlファイルなど)のmetaタグの文字コードはどうしたらよいのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPの文字コード方針の決め方・注意点

    PHPを学んで一ヶ月の初心者です。 そろそろ実際に開発を行おうと思っているのですが、 自分の中での文字コードの方針がまとまらないので、 アドバイス頂きたいです。 文字化けに関する解釈があいまいだと、 今後、文字化けに泣きそうな気がするので…;; 現状は、Moabletypeをよく使うので、 htmlの文字コードは、ほぼutf-8を利用しています。 文字コードに関して、サイトや本でいろいろ調べていると、 今後は、PHP周辺の文字コードをutf-8を中心に考えていった方が良いようにお見受けしました。 ただ、よく使っているサーバーがXサーバーで mysqlの文字コード設定がeuc-jpのようですので、 下記のような考え方で間違いないか不安に思っています。。 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* PHP(プログラムファイル) →utf-8 Mysql → euc-jp パソコンの出力先ページ(html、php) → utf-8 携帯の出力先ページ → shift-jis -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ローカルでの開発段階、 また、mysqlがEUC-jpサーバーへの実装等などを考えた場合の、 各ファイルの文字コードの考え方。 また、1つの開発システム内で、 複数の文字コードを扱う際の注意点などあればご教授ください。 よろしくお願いいたしますm(;;)m

    • ベストアンサー
    • 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の文字コード (php.iniの設定)

    php.iniを以下のように設定した場合について教えてください。 (PHPの参考書に載っていたWindows環境での設定例です) output_buffering = On output_handler = mb_output_handler default_charset = Shift_JIS extension=php_mbstring.dll mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = auto mbstring.script_encoding = EUC-JP 1. この設定は「PHPの記述されたファイルはEUC-JPで、 ブラウザに表示される時点でShift-JISに変換される」 ということですか? 2. PHPの参考書(PHP5対応)に、 「PHPアプリケーションを構築する場合、文字コードを Shift-JISにすると、PHPのバージョンやphp.iniの設定に よっては文字化けの原因になることがあるので、 Windows環境でもEUC-JPで保存することを強くお勧めする」 というようなことが書かれていました。 素人考えで、すべて同じ文字コード(EUC-JP)のほうが 楽なのではないかと思ったのですが、上記のように 設定するのはどういう理由からでしょうか? 3. CSSファイルやテンプレートファイル(Smarty)の 文字コードは、Shift-JISとEUC-JPのどちらで保存 すればいいのですか? 4. metaタグのcharsetはShift-JISであっていますか?

    • ベストアンサー
    • PHP
  • 文字コードと改行

    お世話になります。 PHPではじめてプログラミングにチャレンジしています。 はじめての作品で文字コードのことを全く気にせずにMAC版ドリームウェバーで作っていると一部のブラウザで文字化けが発生しました。 参考書などでは、PHPファイルはeuc-jpで記述しましょうと書かれてありますが、実際どうなのでしょうか? Let's PHPさんのサイトや、過去の質問等、読んで行けばいくほど混乱してしまいました。 PHPでプログラミングする場合、文字コードと改行コードの設定は、どのようにするのが良いのでしょうか? プログラムはeuc-jpで、出力はshift-jisの手順も教えて頂きたいです。 宜しくお願いします。

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

    PHP国際化の文字コード 初心者です。 PHPで実装されている既存のWebサイトの国際化を行う予定です。文字コードはEUC-JPです。 文字コードをEUC-JPのまま、ブラウザの言語設定等によって英語でも表示するよう改修を行う場合、海外のPCで日本語を表示したい人、または英語を表示したい人は正しく表示できるのでしょうか?あるいはUTF-8への全面変更等を考慮しないといけないのでしょうか? 知識不足で恐縮ですが、ご教授願います。

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

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

  • PHPの文字コードについてお願いします。

    Apache2、MYSQL、PHP5を使用して勉強しているものですが、文字コードについて質問させてください。 まず、参考書を読みながらphp.iniをこの用に設定しました。 output_handler =mb_output_handler default_charset = "Shift_Jis" extension_dir = "c:\php\ext\" extension=php_mbstring.dll extension=php_mysql.dll mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; MySQLの文字コードはウィザードでUJISに設定して勉強しています。 Apache2の設定は本で支持が無かったのでとくに設定はしていません。 しかしこれでは文字化けが起こったりしてしまい、Googleなどで調べたらUTF-8で統一するのが良いと書かれていたのですが、どのように変更すればわからないです。私の購入した本では「mbstring.detect_order = auto」の意味などが書いて無くて、ただ丸写しの状態になってしまい設定方法が身についていません。なので今回の質問で、文字コードの設定を覚えておきたいのです。 1.UTF-8などの文字コードに変える場合は、Apache2の設定を変える必要があるのでしょうか。 2.上記したphp.iniの設定はどのような意味があるのでしょうか?SHIFT-JISでPHPを書くということでしょうか? できれば各自の良い設定方法を教えてください。 3.たとえばSHIF-JISで書いたPHPファイルを保存するときはSHIFT-JIS形式で保存するのでしょうか? 4.なぜphpはSHIFT-JISで書いているのにMySQLではUJISの文字コードを使用するのでしょうか。統一した方がいいのでは? 5.utf-8に文字コードを変える場合は、php.iniのどの部分を設定し直せばいいのでしょうか? 一つでも回答して頂けるととても嬉しいです。よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう