• 締切済み

文字コードに関して

自分は、今までHTMLとPHPを利用してサイトの構築をしてきました。 shift-jisでしか記述した事が有りませんが、文字化けの問題もなく今までやってこれました。 今回は、mySQLを利用してサイト(PC及び携帯)の構築を試みております。 その際に不安な点が幾つか有ります。 HTMLとPHPは今後もshift-jisで問題ないのでしょうか? その際、mySQLの文字コードもshift-jisにした方が良いのでしょうか? 下記の関係での推奨文字コードをアドバイス願います。 皆さんが開発者だったら、コレで書くのがベストと思えるパターンと理由も教えていただければ参考にさせていただきますので宜しくお願いします。 mySQL > PHP > HTML

noname#227352
noname#227352
  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

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

MySQLなどWEB技術としてSQLを運用する場合、shiftjisを利用するのは 非常に困難です。 とくに規定フォームからMySQLに漢字を含むデータを登録するときには 完全にインジェクション対策をとることができません。 とはいえ、携帯サイトなどshiftjisに依存するものもないとはいいきれないため あくまでもいろいろ複雑な対応が必要であることを理解した上で、 shiftjisを使われるのが妥当でしょう。

関連するQ&A

  • htaccessでの文字コード設定について

    現在[PHP4 + MySql4.0.17]を利用したWebシステムを構築しています。 携帯での閲覧にも対応するため、携帯ページの文字コードをShift_JISにしたいと思っているのですが、MySqlのデータ文字コードはEUC-JPのため、ページ表示の際に文字化けしてしまいます。 現在、携帯用ページのトップディレクトリのhtaccessにて以下の設定を記述していますが、表示される文字コードはEUC-JPのままです。 ------------------------------------------------ AddDefaultCharset SHIFT_JIS php_value mbstring.http_input "auto" php_value mbstring.http_output "SHIFT_JIS" php_value mbstring.internal_encoding "SHIFT_JIS" ------------------------------------------------- もし上記の設定に間違いなどがあれば、ご指摘いただけないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 文字化けについて

    PHP5 MySQL5 phpMyAdmin の3種でシステム構築を行っていました。 この度新しいPCで環境を設定した所、文字化けが起きてしまいました。 構築した以前のローカル環境と各バージョンや設定は同じはずなのですが、文字化けに悩まされています。 具体的には、MySQLはEUCでPHPはShift_JISにて構築しています。 システムの構造は、Shift_JISをMySQLに挿入する際はEUCに変換して格納しています。 文字化けは、phpMyAdminでは正常にみれるものがシステムをブラウザから確認すると日本語が全て???に文字化けしてしまっています。 そこで、phpMyAdminからDBの文字コードをlatin1にした所、今度はphpMyAdmin上で文字化けし、ブラウザ上からは正常にみえるといった状態です。 数日格闘しているのですがお手上げ状態です。 どなたかアドバイス頂ければ幸いです。

    • 締切済み
    • PHP
  • 携帯サイトをphpで作る際の文字コードは?

    HTML+php+MySQLでPC版サイトを制作しました。 今度は携帯版サイトを作っていこうと思うのですが、 その際の文字コードは『Shift-JIS』が望ましいようです。 手元にあるPC版サイトのファイルをコピー&修正して携帯版にしようと思っていたのですが、PCサイトの制作は全て『euc-jp』で統一して作ってあります。 この場合どう作り直していくのがベターでしょうか? HTMLの出力を『Shift-JIS』に変換してくれるような便利な関数があったりしますか? 1番悩んでいるのが、phpスクリプトには『Shift-JIS』は好ましくないのに、携帯サイトは『Shift-JIS』で作りたいという点です。 どなたかご存知でしたらご教示宜しくお願いします!

    • ベストアンサー
    • PHP
  • PHPのコードをUTF-8に変換したい。

    なんとかメールフォーム設置までこぎ着けたのですが、届いたメールが文字化けしてしまいます。HTMLの文字コードがUTF-8、PHPの文字コードがshift-jisなので原因はそこだと考えたのですがPHP内のshift-jis表記をUTF-8に変えるとPHP内で文字化けが起こってしまいます。 MultiTextConverterなどのアプリケーションを使っても同様の文字化けが起こります。 どうすればいいのか分かりません。 よろしくお願いします。

    • 締切済み
    • PHP
  • 文字コードについて

    前回の質問では解決しないまま誤って締め切ってしまいました。すいません。(その後無事解決しました) また質問で申し訳ないのですが、文字コードについて質問をさせてください。 「set names sjis」というのはどういう意味があるのでしょうか?この命令を使えばそのときだけその文字コードで使えるのだと思っていたのですが、phpからmysql_queryでその命令を送ったところ、逆にその命令を送ったときだけ文字化けが発生してしまいました。(phpファイルの文字コードはシフトJISです) その命令を送らなかったときはmysql側の設定にかかわらず文字化けは発生しませんでした。 また話は変わるんですが、例えばレンタルサーバーなどでサーバーのMySQLの設定がシフトjisでなかった場合は、シフトjisは使えないのでしょうか?携帯対応のサイトを作りたいのでシフトJISにしたいのですが…… 以上2点よろしくお願いします

    • ベストアンサー
    • MySQL
  • 文字コードについて(小説サイトを運営しています)

    HTML5が正式勧告されたら移行予定のため、文字コードを全てUTF-8に変更しました。 執筆速度が速いため、現在ある200ファイルほどを早めに変えておこうと思い、変えたのですが(Shift_JISは非推奨ですし、大手小説サイトの文字コードもUTF-8という理由です) スクリプトなど組み込むつもりのないテキストのみのサイトです。 今、悩んでおります。この場合、将来性を考慮した上で(Shift_JISが廃れてゆく可能性)どちらの文字コードにすべきでしょうか? 一部のページに環境依存文字を使用してあるだけです。 当方はHTMLの勉強中の作家です。現在、文字化け対策で悩んでおります。

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

    初心者です。 いままで特に何も考えずにShiftJisでつくってきたサイトがあるのですが、UTF-8にすべきとご指摘をいただき、直したいのですが、どこをどう変えてよいのかわかりません。 いままで文字コードを指定してきたところといえば、DBに接続する際の $rs = mysql_query("SET character set SJIS", $db); とか、HTMLタグの、 <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> とか、CSSの @charset "Shift_JIS"; と、この程度です。 これらを単純に全てUTF-8に統一するだけでOKなのでしょうか? テーブルを作成するときにも文字コードを指定したり、PHPのiniファイルやMySQLのどこかも設定が必要なのでしょうか? ちなみに、ユーザーが入力した情報をテーブルに保存し、それを別のユーザーが検索して閲覧できるようなサイトを作っており、ローカル環境下ではいまのところ文字化けに遭遇したことはありません。 稚拙な質問ですみませんがよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • EUC⇔Shift_JISの文字コード変換について

    DB(OS:win2003、DBMS:MySQL Server5.0  文字コードはEUC)に対して CSVファイルをインポート、エクスポートしようとしています。 入出力ファイル(CSVファイル)の文字コードはShift_JISのため、 文字コード変換が必要となってきています。 CSVファイルのインポート/エクスポート、文字コード変換は、 php5.2.5で構築しています。 今、エクスポート(EUC→Shift_JIS)したCSVファイルを、 エクセルで確認すると極一部が文字化けしてしまいます。 そこで質問が4つあります。 1.文字化けは仕方ないことなのでしょうか? 2.文字化けする文字を特定することはできるのでしょうか? 3.エクスポート方法、変換方法によって文字化けする文字は変わってくるので しょうか? 4.みなさんはこのような文字化けの問題をどのように回避した経験お持ちですか?   (文字化けは已む無し、文字コードを意地でも統一した、    文字を特定して特殊文字に置き換えたなどなど) 基本的なことと思いますが、よろしくご教授願います。  (3.4.はもっと詳細がわからないと何とも言えないかもしれません。   ご回答頂く為には何を調べればいいのかからも教えてください。   よろしくお願いします。)

    • ベストアンサー
    • MySQL
  • HTML文字コード

    こんにちは。 文字コードのお話です。 PHPでテンプレートを呼び出して表示するのですが、UTF-8で指定しているのに、Shift-Jisで出力されている様子です。 HTMLのmetaタグで宣言しているのに、HTMLファイルだけがS-JISです。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> PHP側ではUTF-8を指定していて、そのページではきれいに表示されている文字と、文字化けしている文字がごちゃごちゃです。 htaccessの設定という可能性もあるでしょうか? HTMLに関連する問題だと思うのですが、ご存じの方いらっしゃいましたらご教授お願いします。。

    • 締切済み
    • PHP
  • 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

専門家に質問してみよう