[PHP-users 31681] Re: MySQLでのエラーと文字化け

YuGo yu.gotou @ gtec-ni.com
2007年 3月 14日 (水) 08:50:33 JST


Napura どの。

キャラクタセットがlatin1(1バイト文字)で制限されていると、日本語(2バイト
文字)を格納するのは無理だと思います。
データベースを作るときに
>CREATE DATABASE hoge DEFAULT CHARACTER SET cp932(sjis) ;
としてやればcp932(sjis)のテーブルを作れるはずですが、たぶんINSERTできな
いのではないでしょうか。やってみてください。


Napura wrote:
> YuGoさん、こんばんは
> 
> Napuraです。
> 状況を報告したく、フライングと思いながらよそ人のPCから送って
> しまいました。すみませんでした。
> 
>> これは、latin1に存在しない文字コードが来た場合はエラーとして受け付けてい
>> ないのではないでしょうか。
>> たとえば、SJISの「あ」は文字コード0x82A0ですがlatin1にはそんな文字コード
>> ないのでINSERTさせない。
>>
>> 4.0までならこの状況でもINSERTできたのですが。
>>
>> もっぱらWINDOWSがクライアントなら
>> character_set_server cp932
>> だめなら譲って
>> character_set_server utf8
>> に変えるのが得策と考えます。
> 
> データベースサーバーのほうを
> 変えるのが良策ですね。
> 
> mysql_query("ALTER TABLE regist_office_tbl CHARACTER SET utf8", $con)
> mysql_query("SET NAMES utf8" , $con)
> 
> を行っても
> 
> 
> character_set_client utf8 
> character_set_connection utf8 
> character_set_database latin1 
> character_set_results utf8 
> character_set_server latin1 
> character_set_system utf8 
> character_sets_dir /usr/share/mysql/charsets/ 
> 
> character_set_server は変えられないですし・・・
> my.cnfの書き換えはサーバでないと出来ませんし。
> MySQL 接続照合順序」を「sjis_japanese_ci」までは行ってもらいましたが
> かわりません。
> phpmyadminもアクセス可能としてもらいましたので
>  
>> もしかしてーデータベースサーバ、海外ですか。
> 国内ですが、他社のサーバーです。
> 
> my.cnfの書き換えはサーバでないと出来ませんし。
> MySQL 接続照合順序」を「sjis_japanese_ci」までは行ってもらいましたが
> かわりません。
> phpmyadminもアクセス可能としてもらいましたが・・・
> 
> よろしくお願いいたします。
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
> 


PHP-users メーリングリストの案内