[解決済み] MySQLでUTF-8を正しく処理する方法
2022-09-24 19:54:07
質問
の回答のひとつに に対する回答のひとつです。 は、私のデータベースがUTF-8文字を正しく処理できることを確認する必要があることを示唆しました。MySQL でこれを行うにはどうすればよいですか?
どのように解決するのですか?
更新しました。
簡単な答え - ほとんど常に
utf8mb4
文字セットと
utf8mb4_unicode_ci
の照合順序を指定します。
データベースを変更する。
ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ご覧ください。
-
この回答に対するAaronのコメント MySQL で UTF-8 を適切に処理する方法
-
コンバージョンガイドです。 https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-conversion.html
オリジナルの回答です。
MySQL 4.1 以降は、デフォルトの文字セットが UTF-8 になっています。これを確認するには
my.cnf
ファイル内で確認できます。
と
クライアントとサーバ (
default-character-set
と
character-set-server
).
UTF-8に変換したい既存のデータがある場合、データベースをダンプし、念のためUTF-8でインポートし直してください。
-
使用
SET NAMES utf8
データベースへのクエリ/挿入の前に -
使用
DEFAULT CHARSET=utf8
新しいテーブルを作成するとき -
この時点で、MySQL クライアントとサーバは UTF-8 になっているはずです (
my.cnf
を参照)。使用する言語(PHP など)も UTF-8 である必要があることを忘れないでください。PHP のバージョンによっては、独自の MySQL クライアントライブラリを使用し、それが UTF-8 を認識していない場合があります。
既存のデータを移行する場合は、最初にバックアップすることを忘れないでください! 計画通りに行かなかった場合、多くの奇妙なデータの切り刻みが発生する可能性があります!
いくつかのリソース。
- UTF-8 への完全移行 (cdbaby.com)
- の記事 php関数のUTF-8対応 (この情報の一部は古いことに注意してください)
関連
-
MySQLのWhereの使用方法について説明します。
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] ずっとUTF-8
-
[解決済み] MySQLデータベースのテーブルのサイズを取得する方法は?
-
[解決済み] MySQLの重複レコードを検索する
-
[解決済み] 最近のPerlはなぜデフォルトでUTF-8を避けるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLデータベース・インデックスの左端一致の原則
-
MySQLのWhereの使用方法について説明します。
-
MySQLのNULLについて解説した記事
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
[解決済み】SQLサーバーのテンポラリーテーブルで「すでに名前のついたオブジェクトがあります」エラーが発生する。
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
[解決済み] ずっとUTF-8
-
[解決済み] utf8_general_ciとutf8_unicode_ciの違いは何ですか?
-
[解決済み] MySQLデータベースのキャラクタセットと照合順序をすべてUTF-8に変換する方法は?
-
[解決済み】UTF-8:一般?Bin?ユニコード?