質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

2回答

3611閲覧

mysqlで「髙」が文字化けしてしまう。

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2020/01/22 03:22

発生している問題・エラーメッセージ

mysql5.5.9(windows serever 2012)から
「mysqldump -u root --default-character-set=binary database > database.sql」で
データをエクスポートして、
mysql5.6.10(windows serever 2016)
「mysqldump -u root --default-character-set=binary database < database.sql」で
データをインポートしました。

どちらも文字コードがSjisなのですがmysql5.5.9では表示された「髙」が文字化けした「?」
となってしまいます。

試したこと

show variables like '%char%';
で両環境を比較しましたが、以下の通りでmy.iniファイルの設定に誤りは
無いかと思っています。
+--------------------------+------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------+
| character_set_client | sjis |
| character_set_connection | sjis |
| character_set_database | sjis |
| character_set_filesystem | binary |
| character_set_results | sjis |
| character_set_server | sjis |
| character_set_system | utf8 |
| character_sets_dir | D:\MySQL\share\charsets\ |
+--------------------------+------------------------------+

「髙」を文字化けさせずに表示させるために
見直しすべき箇所を教えていただけないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/01/22 04:12

既に化けて登録されたデータは救えませんがそれは認識されてますか?
退会済みユーザー

退会済みユーザー

2020/01/22 07:26

インポートしたデータベースから再エクスポートすると文字が見えましたので、 文字コード自体は変わっていないようです。
guest

回答2

0

どちらも文字コードがSjisなのですがmysql5.5.9では表示された「髙」が

sjisの範囲内に「髙」という文字は存在しません。この文字は「IBM拡張文字」と呼ばれる文字の一種で、もともとは文字コードの空いた領域に突っ込んだものだったのです。

範囲外の文字なので、どう処理されようとも責任は負えない、そんな世界です。

投稿2020/01/22 04:13

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/01/22 04:15

現代のUTF-8でも、MySQLでは4バイト文字あり(utf8mb4)に正しく設定しないと、4バイト文字が来たところでぶった切れる、というひどいことになる例もあります。 …というように、文字コードが不整合になると、正当な処理すら保証されません。
退会済みユーザー

退会済みユーザー

2020/01/22 07:27

ありがとうございます。 mysql5.5.9では何故見えていたのか不明なので、謎は残りますが 移行後、sjisではNGというのは理解できました。
guest

0

可能な限りサーバー環境のキャラクターセットをutf8以上に統一し
db/table/カラムのキャラクターセットもきちんと設計してください
そもそもsjisにはしご高はNGですし、5C問題など別の課題もあります

投稿2020/01/22 03:34

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/22 07:28

ご指導ありがとうございます。 キャラクターセットがcp932であれば良かったのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問