phpMyAdminにPHPでデータを登録しているのですがデータが文字化けしてしまいます。
文字化けが起こってしまうのは空白(スペース)部分でその他の部分は一切文字化けしていません。
現在以下のようにしてメールフォームで入力してもらった姓と名を
入金チェックしやすいように全角空白で空けた名前に変換登録するという処理をしています。
$namae=$namae_sei." ".$namae_mei ;
このデータをphpMyAdminに送っているのですが、
名前(セイ)縲名前(メイ)
のようにスペースが縲の様な風に文字化けしてしまいます。
PHPで送る文字形式がUTF-8形式ですと空白を空白として登録ができました。
しかし,どうしてもSJIS形式、もしくはEUC形式で保存したいと考えております。
解決方法を知っている方どうぞよろしくお願いいたします。
まず、確認ですが
phpMyAdminにPHPでデータを登録している
の手順を具体的にお知らせください。
PHPを使い MySQL にデータ登録を行い、それを phpMyAdmin で閲覧しているという手順ではないでしょうか?
もうそうだとすると、phpMyAdmin、MySQL、PHPのすべての文字コードセットがSJISに設定されているかどうかご確認ください。
まず、確認ですが
phpMyAdminにPHPでデータを登録している
の手順を具体的にお知らせください。
PHPを使い MySQL にデータ登録を行い、それを phpMyAdmin で閲覧しているという手順ではないでしょうか?
もうそうだとすると、phpMyAdmin、MySQL、PHPのすべての文字コードセットがSJISに設定されているかどうかご確認ください。
ご回答ありがとうございます。
PHPを使い MySQL にデータ登録を行い、それを phpMyAdmin で閲覧しているという手順になります。
先ほどコードを再確認をしてデータ登録状況を確認してみましたがやはり空白スペースの所のみ 縲 という文字化けが起こってしまいます。
すでにやられているかもしれませんけれども。
空白だけ化ける、ということですので、全角空白を追加している処理
$namae=$namae_sei." ".$namae_mei ;
において、$namae_sei など変数に格納された文字列とリテラル(" ")で異なるエンコードになっていることは確実だと思います。
したがって、(1) 変数に格納された文字列が想定外のエンコードのケース、(2) リテラルの文字列が想定外のエンコードのケースしかありえません。
(1) については、mbstring.input_encoding の値によっては、自動変換されて想定していないエンコードになってしまうケースが考えられます。
確実に想定したエンコードにするには、pass にしてまったく変換させないか、送られてくるはずのエンコードにあわせるのいいかと思います。
(2) については、ソースコードのエンコードと mbstring.internal_encoding が想定どおりのものかどうか、を確認する必要があります。
詳しくは次の URL などを参考にされるといいかと思います。
http://wiki.ohgaki.net/index.php?PHP%2Ftips%2F%E6%97%A5%E6%9C%AC...
直接の回答ではありませんが、お役に立てれば幸いです。
御回答ありがとうございます。試させていただきます。
ご回答ありがとうございます。
PHPを使い MySQL にデータ登録を行い、それを phpMyAdmin で閲覧しているという手順になります。
先ほどコードを再確認をしてデータ登録状況を確認してみましたがやはり空白スペースの所のみ 縲 という文字化けが起こってしまいます。