嫌な文字化け問題
プログラムはデータの一部を別のデータベースに挿入する必要があります
自分のプログラムとデータベースはどちらも UTF-8 ですが、他のデータベースのエンコーディングが非常に複雑なため、挿入できないか、CREATE TABLE IF NOT EXISTS `mem_m` (
) のコードが文字化けします。
`MemM_LoginName` varchar(20) CHARACTER SET latin1 DEFAULT NULL COMMENT 'μ?????',
ここはフィールドです、
「character_set_%」のような変数を表示;次のように表示されます
変数名 値
文字セットクライアント utf8
文字セット接続ラテン1
文字セットデータベース utf8
Character_set_filesystem バイナリ
文字セット結果 utf8
文字セットサーバーラテン1
文字セットシステム utf8
解決方法を教えてください
-----解決策---------`MemM_LoginName` varchar(20) CHARACTER SET latin1 DEFAULT NULL COMMENT 'μ??????',
以上です
`MemM_LoginName` varchar(20) CHARACTER SET latin1 DEFAULT NULL COMMENT 'ログイン名',
このテーブルは実際には gbk 環境で作成されます
CHARACTER SET latin1ですが
ただし、テーブルの内容はまだ gbk
です。
内容を読みたいだけなら、
なしでアクセスできます。
set names コマンドを使用する場合は、
にする必要があります。
名前を設定 latin1
iconv('gbk', 'utf-8', $MemM_LoginName) を使用して、読み取ったコンテンツを utf-8 に変換し、
を使用します
テーブル全体を変換したい場合は、phpmyadmin
の代わりに mysqldump ツールを使用することもできます。
詳しい方法は省略しますが、「gbk latin1」
で検索してください。