• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:中国語が文字コード変換で、一部文字化けする。)

PHPとMySQLで中国語のサイトを作る際の文字コード変換について

このQ&Aのポイント
  • 中国語のサイトをPHPとMySQLで作る際に、文字コード変換に問題が発生しています。
  • データベースから読み出した文字列が一部文字化けしてしまい、文字が「?」になってしまいます。
  • サイトの構成や管理者画面の文字コード設定など、問題の原因となる要素を整理し、解決方法をアドバイスしてもらいたいです。

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

  • ベストアンサー
回答No.1

中国語の文字コードを詳しく知らないのですが、中国語をEUCにするってのはそもそも間違えているのではないでしょうか。 多国語を扱う場合は素直にDBもソースもUTF-8などにしてしまった方が良いかと思います。 何が何DBはEUCで!! って場合は、文字データをバイナリの状態で(BLOG型)に入れてやったりする必要があると思います。 出力形式を変えたり、それぞれの文字コードを把握しないといけないなどかなりめんどくさいと思います。 また、予想できない問題がいろいろあるんじゃないかな?と思います。

leeeeeeee
質問者

お礼

結局、 SJIS ではなく、 sjis-win にすることで解決できました。 また、また今後のために文字データをBLOB型で保存することにしました。 現状では、 管理者画面(入力):sjis-win → DB:GB(EUC/BLOB型) 管理者画面(出力):DB:GB(EUC/BLOB型) → sjis-win 中国語サイト:DB:GB(EUC/BLOB型) → GB という感じで処理することにしました。 BLOB型にするメリットがいまいち分かっていないまま、こうしてみたのですが、全然違うものなのでしょうか?

leeeeeeee
質問者

補足

そうなんです。最初にUTF-8にするべきでした。ただ、日英のシステムを組んでいたときはまだ知識が少なかったため、EUCを選んでしまいました。 テーブルごとに文字コードが変えられたらいいですけどね。すでにシステムは動いており、後にはひけない状況だといえます。 BLOG型ではななく、BLOB型でしょうか? それを一度試してみたいと思います。 症状としては、shift-jisで特定の文字だけ文字化けしてしまう、といったのと似ており、GB2312で特定の文字だけ文字化けしてしまうという感じです。

関連するQ&A