SlideShare a Scribd company logo
1 of 56
Download to read offline
MySQLの文字コード事情MySQLの文字コード事情
2017版2017版
MySQL Casual Vol.10
2017/02/01
とみたまさひろ
MySQL Casual こわいMySQL Casual こわい
自己紹介自己紹介
とみた まさひろ
長野県北部在住プログラマー
好きなプログラミング言語 Ruby
Ruby/MySQLライブラリ
http://tmtms.hatenablog.com
http://twitter.com/tmtms
https://github.com/tmtm
最近の活動最近の活動
Software Design 2016年6月号
「MySQLでデータベースを作ってみよう!」
Software Design 2016年9月号
「MySQL 4つのログの使いどころ」
Software Design 2016年12月号
「Rubyと文字コード」
「MySQLと文字コード」
mysql.gr.jp ドメイン料支払い
MySQLに対する興味分野MySQLに対する興味分野
プロトコルプロトコル
X Protocol とか
文字コード文字コード
今回は文字コード今回は文字コード
MySQLで文字コードというMySQLで文字コードという
と Character set(Charset)と Character set(Charset)
Character set ?Character set ?
語源的には文字集合語源的には文字集合
文字集合文字集合
US-ASCII
数字、英字、32個の記号
JIS X 0201
US-ASCII(「」→「¥」/「~」→「‾」)+カタカ
ナ
JIS X 0208
数字、ひらがな、カタカナ、漢字、ラテン文字、
ギリシャ文字、記号等々
JIS X 0213
JIS X 0208 + 第三水準/第四水準、ローマ数字、
鼻濁音文字等々
文字集合文字集合
Windows-31J
JIS X 0201 + JIS X 0208 + NEC特殊文字 + IBM
拡張文字(「⑧」「Ⅷ」「㈱」「髙」「﨑」「彅」
等)
Unicode
世界中の文字。絵文字(「�����������������」「�������������������」等)も含む。
あれ?あれ?
「CP932」とか「UTF-8」「CP932」とか「UTF-8」
は?は?
エンコーディングエンコーディング
文字符号化方式文字符号化方式
文字集合の文字をコンピュータで利用できるバイト列
に変換する方式
エンコーディングエンコーディング
Encoding 文字集合 用途
ISO-2022-JP US-ASCII, JIS X 0201(ラテン文
字), JIS X 0208
メール
EUC-JP US-ASCII, JIS X 0201(カナ文字),
JIS X 0208, JIS X 0212
昔の
UNIX
SHIFT_JIS JIS X 0201, JIS X 0208
Windows-31J
CP932
Windows-31J Windows
エンコーディングエンコーディング
Encoding 文字集合 1文字のサイズ
UTF-8 Unicode 1〜4バイト
UTF-16 Unicode 2バイト
UTF-32 Unicode 4バイト
Charset ≒ エンコーディングCharset ≒ エンコーディング
(MySQLに限らない)(MySQLに限らない)
MySQLのCharsetMySQLのCharset
mysql> SHOW CHARACTER SET;
+----------+---------------------------------+-----------------
| Charset | Description | Default collatio
+----------+---------------------------------+-----------------
| big5 | Big5 Traditional Chinese | big5_chinese_ci
| dec8 | DEC West European | dec8_swedish_ci
| cp850 | DOS West European | cp850_general_ci
| hp8 | HP West European | hp8_english_ci
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci
| latin1 | cp1252 West European | latin1_swedish_c
| latin2 | ISO 8859-2 Central European | latin2_general_c
| swe7 | 7bit Swedish | swe7_swedish_ci
| ascii | US ASCII | ascii_general_ci
日本語が使えてASCII互換の日本語が使えてASCII互換の
は ujis, sjis, eucjpms,は ujis, sjis, eucjpms,
cp932, utf8, utf8mb4cp932, utf8, utf8mb4
MySQL CharsetMySQL Charset
charset 文字集合 エンコーディング
ujis JIS X 0201 + 0208 EUC-JP
sjis JIS X 0201 + 0208 SHIFT_JIS
eucjpms Windows-31J EUC-JP風
cp932 Windows-31J Windows-31J
utf8 Unicode UTF-8
utf8mb4 Unicode UTF-8
今なら普通はUnicode今なら普通はUnicode
世界中のほぼすべての文字を扱える
絵文字も使える
世の中もう普通にユニコード
文字コード変換とか考えなくていい
文字化けしない
utf8 ? utf8mb4 ?utf8 ? utf8mb4 ?
utf8 と utf8mb4utf8 と utf8mb4
utf8: 1文字 1〜3バイト (U+0000〜U+FFFF)
utf8mb3 という別名あり
utf8mb4: 1文字 1〜4バイト(U+0000〜U+1FFFFF)
UTF-8 は普通1〜4バイト
utf8 / utf8mb4 の違いは MySQL のみ
ほとんどの日本語文字は3バイト
一部の漢字と絵文字等が4バイト
4バイトになる JIS X 02134バイトになる JIS X 0213
の文字の文字
𠀋𡈽𡌛𡑮𡢽𠮟𡚴𡸴𣇄𣗄𣜿𣝣𣳾𤟱𥒎𥔎𥝱𥧄𥶡𦫿𦹀𧃴𧚄𨉷𨏍𪆐𠂉
𠂢𠂤𠆢𠈓𠌫𠎁𠍱𠏹𠑊𠔉𠗖𠘨𠝏𠠇𠠺𠢹𠥼𠦝𠫓𠬝𠵅𠷡𠺕𠹭𠹤𠽟𡈁
𡉕𡉻𡉴𡋤𡋗𡋽𡌶𡍄𡏄𡑭𡗗𦰩𡙇𡜆𡝂𡧃𡱖𡴭𡵅𡵸𡵢𡶡𡶜𡶒𡶷𡷠𡸳
𡼞𡽶𡿺𢅻𢌞𢎭𢛳𢡛𢢫𢦏𢪸𢭏𢭐𢭆𢰝𢮦𢰤𢷡𣇃𣇵𣆶𣍲𣏓𣏒𣏐𣏤𣏕
𣏚𣏟𣑊𣑑𣑋𣑥𣓤𣕚𣖔𣘹𣙇𣘸𣘺𣜜𣜌𣝤𣟿𣟧𣠤𣠽𣪘𣱿𣴀𣵀𣷺𣷹𣷓
𣽾𤂖𤄃𤇆𤇾𤎼𤘩𤚥𤢖𤩍𤭖𤭯𤰖𤴔𤸎𤸷𤹪𤺋𥁊𥁕𥄢𥆩𥇥𥇍𥈞𥉌𥐮
𥓙𥖧𥞩𥞴𥧔𥫤𥫣𥫱𥮲𥱋𥱤𥸮𥹖𥹥𥹢𥻘𥻂𥻨𥼣𥽜𥿠𥿔𦀌𥿻𦀗𦁠𦃭
𦉰𦊆𦍌𣴎𦐂𦙾𦚰𦜝𦣝𦣪𦥑𦥯𦧝𦨞𦩘𦪌𦪷𦱳𦳝𦹥𦾔𦿸𦿶𦿷𧄍𧄹𧏛
𧏚𧏾𧐐𧑉𧘕𧘔𧘱𧚓𧜎𧜣𧝒𧦅𧪄𧮳𧮾𧯇𧲸𧶠𧸐𧾷𨂊𨂻𨊂𨋳𨐌𨑕𨕫
𨗈𨗉𨛗𨛺𨥉𨥆𨥫𨦇𨦈𨦺𨦻𨨞𨨩𨩱𨩃𨪙𨫍𨫤𨫝𨯁𨯯𨴐𨵱𨷻𨸟𨸶𨺉
𨻫𨼲𨿸𩊠𩊱𩒐𩗏𩙿𩛰𩜙𩝐𩣆𩩲𩷛𩸽𩸕𩺊𩹉𩻄𩻩𩻛𩿎𪀯𪀚𪃹𪂂𢈘
𪎌𪐷𪗱𪘂𪘚𪚲
4バイトになる絵文字(一部)4バイトになる絵文字(一部)
�����������������������������������������������������������������������������������������������������������������
�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������
�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
�����������������������������������������������������������������������������������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
MySQLのCharsetMySQLのCharset
サーバー
クライアント
サーバー/クライアント間の接続
データベース毎
テーブル毎
カラム毎
…を全部別々に設定できる(嫌な予感しかしない)
ハマりたくなければ全部統一ハマりたくなければ全部統一
サーバー Charsetサーバー Charset
新規に作成するデータベースのCharsetのデフォルト
これさえ指定しておけばだいたいOK
mysqld の起動オプション
--character-set-server=utf8mb4
my.cnf の [mysqld] セクション
character-set-server = utf8mb4
サーバー変数 character_set_server
データベース Charsetデータベース Charset
配下に作成するテーブルのCharsetのデフォルト値
サーバーCharsetと同じであれば指定しなくてもいい
作成: CREATE DATABASE db CHARSET utf8mb4;
確認: SHOW CREATE DATABASE db;
変更: ALTER DATABASE db CHARSET utf8mb4;
変更しても既存のテーブルCharsetは変更されない
テーブル Charsetテーブル Charset
テーブル内カラムのCharsetのデフォルト値
データベースCharsetと同じであれば指定する必要は
ない
作成: CREATE TABLE tbl (...) CHARSET utf8mb4;
確認: SHOW CREATE TABLE tbl;
テーブル Charsetテーブル Charset
テーブル属性だけ変更:
ALTER TABLE tbl CHARSET utf8mb4;
既存のカラムのcharsetは変更されない
全カラムとデータの変換:
ALTER TABLE tbl CONVERT TO CHARSET utf8mb4;
utf8 で作ってしまったテーブルを utf8mb4 に変
換とか
カラム Charsetカラム Charset
テーブルCharsetと同じであれば指定する必要はない
作成: CREATE TABLE tbl (col VARCHAR(10) CHARSET
utf8mb4, ...);
確認: SHOW CREATE TABLE tbl;
変更: ALTER TABLE tbl MODIFY col VARCHAR(10)
CHARSET utf8mb4;
変更するとカラム内のデータも変換される
クライアント Charsetクライアント Charset
クライアント内での文字列処理と
サーバーとの接続Charsetに使用される
指定方法はプログラム/言語に依存
mysql --default-character-set=utf8mb4
プログラムによっては my.cnf の [client] セクショ
ンが有効
「loose-」をつけておくとそのパラメータを知らないプログラムは
無視してくれる
[client]
loose-default-character-set = utf8mb4
クライアント Charsetクライアント Charset
mysqld との接続毎に異なる
mysql コマンドでOKでも他のアプリからはNGかも
しれない
何も指定しなければ latin1
Charset の確認Charset の確認
mysql> SHOW VARIABLES LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql コマンドmysql コマンド
mysql コマンドのデフォルトCharsetは auto
システムロケール(LC_ALL, LC_CTYPE, LANG 環境
変数等)により値が決定
LANG=ja_JP.UTF-8 の場合は utf8 になる
utf8mb4 ではない
LANG=C の場合は latin1 になる
utf8 と utf8mb4 の混在でutf8 と utf8mb4 の混在で
起きること起きること
utf8接続から4バイト文字をutf8接続から4バイト文字を
参照参照
クライアントが扱えない文字は「?」になる
mysql> SELECT str FROM tbl;
+-------+
| str |
+-------+
| ?と? | ← '�������������������と�����������������'
| ?と? | ← '?と?'
+-------+
バイト列を見れば違いがわかバイト列を見れば違いがわか
るる
mysql> SELECT HEX(str) FROM tbl;
+------------------------+
| HEX(str) |
+------------------------+
| F09F8DA3E381A8F09F8DBA | ← '�������������������と�����������������'
| 3FE381A83F | ← '?と?'
+------------------------+
utf8接続から4バイト文字をutf8接続から4バイト文字を
登録登録
文字化けして登録されちゃう
mysql> INSERT INTO tbl (str) VALUES ('�������������������と�����������������');
Query OK, 1 row affected, 2 warnings (0.05 sec)
mysql> SELECT str,HEX(str) FROM tbl;
+-------------+------------------------+
| str | HEX(str) |
+-------------+------------------------+
| ????と???? | 3F3F3F3FE381A83F3F3F3F |
+-------------+------------------------+
sql_modesql_mode
MySQLはおかしなことしてもあまりエラーにならな
い(余計なお世話)
sql_mode でちゃんとエラーにしてくれる
mysql> SET sql_mode='STRICT_ALL_TABLES';
mysql> INSERT INTO tbl (str) VALUES ('�������������������と�����������������');
ERROR 1366 (HY000): Incorrect string value:
'xF0x9Fx8DxA3xE3x81...' for column 'str' at row 1
sql_modesql_mode
MySQL 5.7 からはデフォルト
mysql> SELECT @@sql_mode
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE
NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
NO_ENGINE_SUBSTITUTION
�������������������=����������������� 問題
�������������������と�����������������以外でも
mysql> SELECT '����������'='�������������';
+---------+
| '?'='?' |
+---------+
| 1 |
+---------+
mysql> SELECT '����������'='�����';
+---------+
| '?'='?' |
+---------+
| 1 |
+---------+
実は未知の文字�扱い実は未知の文字�扱い
‘�������������������’=’�����������������’=’�’
CollationCollation
CollationCollation
文字の照合規則・照合順序
Charset 毎に Collation がある
Charset の指定は Charset のデフォルトの
Collation を指定するのと同じ
Collation 一覧Collation 一覧
mysql> SHOW COLLATION LIKE 'utf8mb4%';
+------------------------+---------+-----+---------+----------+
| Collation | Charset | Id | Default | Compiled |
+------------------------+---------+-----+---------+----------+
| utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes |
| utf8mb4_bin | utf8mb4 | 46 | | Yes |
| utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes |
| utf8mb4_icelandic_ci | utf8mb4 | 225 | | Yes |
| utf8mb4_latvian_ci | utf8mb4 | 226 | | Yes |
| utf8mb4_romanian_ci | utf8mb4 | 227 | | Yes |
| utf8mb4_slovenian_ci | utf8mb4 | 228 | | Yes |
| utf8mb4_polish_ci | utf8mb4 | 229 | | Yes |
| utf8mb4_estonian_ci | utf8mb4 | 230 | | Yes |
utf8mb4 の Collationutf8mb4 の Collation
utf8mb4_general_ci
utf8mb4_bin
utf8mb4_unicode_ci
utf8mb4_unicode_520_ci
utf8mb4_言語_ci
utf8mb4_japanese_ci は無い
「ci」は Case Insensitive(大文字小文字を区別しない)
の意味らしい
utf8mb4_general_ciutf8mb4_general_ci
utf8mb4 Charset のデフォルト Collation
大文字小文字を区別しない(A=a, A=a)
全角半角は区別する(A≠A)
絵文字を区別しない(�������������������=�����������������)
utf8mb4_binutf8mb4_bin
varchar(n) binary
全文字を区別する(A≠a, �������������������≠�����������������)
utf8mb4_unicode_ciutf8mb4_unicode_ci
Unicode Collation Algorithm 4.0.0
大文字小文字を区別しない(A=a, A=a)
全角半角も区別しない(A=A)
絵文字を区別しない(�������������������=�����������������)
ひらがな、カタカナ、濁点有無、全角、半角を区別
しない(は=ば=ぱ=ハ=バ=パ=ハ)
「ハハ=パパ=ババ問題」
http://www.unicode.org/reports/tr10/tr10-11.html
http://dev.mysql.com/doc/refman/5.6/ja/charset-unicode-sets.html
utf8mb4_unicode_520_ciutf8mb4_unicode_520_ci
Unicode Collation Algorithm 5.2.0
大文字小文字を区別しない(A=a, A=a)
全角半角も区別しない(A=A)
絵文字を区別する(�������������������≠�����������������)
ひらがな、カタカナ、濁点有無、全角、半角を区別
しない(は=ば=ぱ=ハ=バ=パ=ハ)
http://www.unicode.org/reports/tr10/tr10-20.html
utf8mb4_*utf8mb4_*
Collation A : a ������������������� : ����������������� は : ば
ぱ : ハ
general_ci = = ≠
bin ≠ ≠ ≠
unicode_ci = = =
unicode_520_ci = ≠ =
utf8mb4_*utf8mb4_*
Collation A : a ������������������� : ����������������� は : ば
ぱ : ハ
general_ci = = ≠
bin ≠ ≠ ≠
unicode_ci = = =
unicode_520_ci = ≠ =
ぼくたちが欲しかった
japanese_ci
= ≠ ≠
寿司=ビール問題 : MySQL 8.0でのUTF8寿司=ビール問題 : MySQL 8.0でのUTF8
サポート入門(MySQL Server Blogより)サポート入門(MySQL Server Blogより)
https://yakst.com/ja/posts/4405
私たちは日本語の照合順序の追加も計
画中です。日本語は興味深い言語であ
り、私たちの照合順序のエキスパート
であるXing ZhangとBernt Marius
Johnsenが、今後のブログ記事でもっ
と詳しく説明するはずです。
まとめまとめ
ふつうは utf8mb4
サーバーとクライアントの両方で Charset を指定
sql_mode をちゃんと設定
Collation は適切に
MySQL 8 で unicode_japanese_ci ができるかも!?

More Related Content

What's hot

劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜aha_oretama
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会ShuheiUda
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?ichirin2501
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選Takuya Ueda
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめサーバPUSHざっくりまとめ
サーバPUSHざっくりまとめYasuhiro Mawarimichi
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~Daisuke Morishita
 
[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみるShuji Kikuchi
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay都元ダイスケ Miyamoto
 
Active Directory をInternetから使用するための4つのシナリオ
Active Directory をInternetから使用するための4つのシナリオActive Directory をInternetから使用するための4つのシナリオ
Active Directory をInternetから使用するための4つのシナリオjunichi anno
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについてkumake
 
MySQLの文字コード事情 2017春版
MySQLの文字コード事情 2017春版MySQLの文字コード事情 2017春版
MySQLの文字コード事情 2017春版Masahiro Tomita
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 

What's hot (20)

At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめサーバPUSHざっくりまとめ
サーバPUSHざっくりまとめ
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
 
Active Directory をInternetから使用するための4つのシナリオ
Active Directory をInternetから使用するための4つのシナリオActive Directory をInternetから使用するための4つのシナリオ
Active Directory をInternetから使用するための4つのシナリオ
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについて
 
MySQLの文字コード事情 2017春版
MySQLの文字コード事情 2017春版MySQLの文字コード事情 2017春版
MySQLの文字コード事情 2017春版
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 

Similar to MySQLの文字コード事情 2017版

"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplantit-people
 
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)Ontico
 
Vvedenievturbopascal
VvedenievturbopascalVvedenievturbopascal
VvedenievturbopascalSerghei Urban
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Anthony Marchenko
 
64-битный конь, который умеет считать
64-битный конь, который умеет считать64-битный конь, который умеет считать
64-битный конь, который умеет считатьTatyanazaxarova
 
Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итрианг...
Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итрианг...Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итрианг...
Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итрианг...Tatyanazaxarova
 
64-битная версия Loki
64-битная версия Loki64-битная версия Loki
64-битная версия LokiTatyanazaxarova
 
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиFProg
 
Урок 6. Ошибки в 64-битном коде
Урок 6. Ошибки в 64-битном кодеУрок 6. Ошибки в 64-битном коде
Урок 6. Ошибки в 64-битном кодеTatyanazaxarova
 
Презентация: 1С-Bitrix — как начать
Презентация: 1С-Bitrix — как начатьПрезентация: 1С-Bitrix — как начать
Презентация: 1С-Bitrix — как начатьDmitriy Polisadov
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаITCrowd Almaty
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаendeveit
 
Подружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project RiderПодружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project RiderAndrey Akinshin
 
Андрей Акиньшин
Андрей АкиньшинАндрей Акиньшин
Андрей АкиньшинCodeFest
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Yandex
 

Similar to MySQLの文字コード事情 2017版 (20)

"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
 
Фишки и прелести TypeScript
Фишки и прелести TypeScriptФишки и прелести TypeScript
Фишки и прелести TypeScript
 
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
 
Vvedenievturbopascal
VvedenievturbopascalVvedenievturbopascal
Vvedenievturbopascal
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
 
64-битный конь, который умеет считать
64-битный конь, который умеет считать64-битный конь, который умеет считать
64-битный конь, который умеет считать
 
Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итрианг...
Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итрианг...Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итрианг...
Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итрианг...
 
«Unicode. Ликбез»
«Unicode. Ликбез»«Unicode. Ликбез»
«Unicode. Ликбез»
 
64-битная версия Loki
64-битная версия Loki64-битная версия Loki
64-битная версия Loki
 
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
 
Purely practical data structures
Purely practical data structuresPurely practical data structures
Purely practical data structures
 
JPHP
JPHPJPHP
JPHP
 
Урок 6. Ошибки в 64-битном коде
Урок 6. Ошибки в 64-битном кодеУрок 6. Ошибки в 64-битном коде
Урок 6. Ошибки в 64-битном коде
 
Презентация: 1С-Bitrix — как начать
Презентация: 1С-Bitrix — как начатьПрезентация: 1С-Bitrix — как начать
Презентация: 1С-Bitrix — как начать
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
Подружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project RiderПодружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project Rider
 
Андрей Акиньшин
Андрей АкиньшинАндрей Акиньшин
Андрей Акиньшин
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
 

More from Masahiro Tomita

More from Masahiro Tomita (20)

お前の罪を数えろ
お前の罪を数えろお前の罪を数えろ
お前の罪を数えろ
 
Ruby 2.5
Ruby 2.5Ruby 2.5
Ruby 2.5
 
本当はこわいMySQLプロトコル
本当はこわいMySQLプロトコル本当はこわいMySQLプロトコル
本当はこわいMySQLプロトコル
 
ネットワークこわい
ネットワークこわいネットワークこわい
ネットワークこわい
 
CSV
CSVCSV
CSV
 
Ruby24
Ruby24Ruby24
Ruby24
 
MySQLの文字コード事情
MySQLの文字コード事情MySQLの文字コード事情
MySQLの文字コード事情
 
進捗と品質
進捗と品質進捗と品質
進捗と品質
 
MySQLを拡張する
MySQLを拡張するMySQLを拡張する
MySQLを拡張する
 
「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル
 
MyNAができるまで
MyNAができるまでMyNAができるまで
MyNAができるまで
 
文字化け
文字化け文字化け
文字化け
 
Crystal
CrystalCrystal
Crystal
 
メールの暗号化
メールの暗号化メールの暗号化
メールの暗号化
 
文字化け
文字化け文字化け
文字化け
 
進捗と品質
進捗と品質進捗と品質
進捗と品質
 
アジャイルジャパン長野サテライト
アジャイルジャパン長野サテライトアジャイルジャパン長野サテライト
アジャイルジャパン長野サテライト
 
🍣=🍺
🍣=🍺🍣=🍺
🍣=🍺
 
本当はこわいエンコーディングの話
本当はこわいエンコーディングの話本当はこわいエンコーディングの話
本当はこわいエンコーディングの話
 
Sequelのすすめ
SequelのすすめSequelのすすめ
Sequelのすすめ
 

MySQLの文字コード事情 2017版