環境依存文字による文字化け

523 views
Skip to first unread message

Ryosuke Yoshinari

unread,
Feb 28, 2017, 12:09:16 AM2/28/17
to fuelphp.jp


お世話になっております。Ryosukeです。

fuelphpにて、環境依存文字を使用すると文字化けが
起こってしまう問題について質問いたします。

データベースよりの

つちよし(下の長い吉)や
いってんしんにょうの辻などをフォームに入力して、

php で読み込んだ際、データベースに格納する段階か
あるいは変数に読み込んだ段階で

\ud842\udfb7
という(つちよしの場合)ストリングが入ってしまい、
これがデータベース上では ???? になってしまいます。

どの段階でデータが壊れてしまうのかわかりません。

もう一度そのデータベースに格納された文字を表示しようとすると
つちよしにはならず、???? と表示されてしまいます。

環境はwindows 10 を使い、CHCP(コードページ)は932
開発ソフトは xampp Netbeans を使用しております。



以下設定まわり

my.ini データベース設定

(前略)
## UTF 8 Settings
init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir="C:/xampp/mysql/share/charsets"
(後略)


データベースの
show variables like "chara%";
の結果です。

+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | cp932                          |
| character_set_connection | cp932                          |
| character_set_database   | latin1                         |
| character_set_filesystem | binary                         |
| character_set_results    | cp932                          |
| character_set_server     | utf8                           |
| character_set_system     | utf8                           |
| character_sets_dir       | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+

Ryosuke Yoshinari

unread,
Apr 6, 2017, 12:02:54 AM4/6/17
to fuelphp.jp
自己解決しました。ryosukeです。

config / development / db.php

に以下のコードを記述することでUTF-8MB4のコードを
データベースにいれることができました。

おさわがせしました
 
return array(
    'default' => array(
        'charset' => 'utf8mb4',
Reply all
Reply to author
Forward
0 new messages