6 件中 1 - 6 件を表示
Displaying posts with tag: 文字コード (reset)
MySQLの正規表現がGrapheme Clusterに対応していた

「竈門禰󠄀豆子」を MySQL に保存できるとかできないとかいう話題を見て、そう言えば MySQL の Grapheme Cluster 対応ってどうなってるんだっけ…と思ってググってみたら、MySQL 8.0.28 のリリースノートにこんな文を見つけた。

International Components for Unicode version 67 introduced a new implementation for \X (match a grapheme cluster), which requires locale data not currently included with MySQL. This means that, when using the version of ICU bundled with MySQL, a query using \X raises the error ER_REGEXP_MISSING_RESOURCE; when using ICU supplied by the system, we report ER_WARN_REGEXP_USING_DEFAULT as a Note. (Bug #33290090)

これは MySQL 8.0.28 で Grapheme Cluster の正規表現の \X

[さらに読む]
MySQLのsjisとcp932の違い

今さらですけど、自分でもちゃんと把握してなかったので調べてみました。

MySQLのCharsetのうちシフトJIS系のものはsjisとcp932の二つあります。

どちらもコードの範囲は次のように同じです。

1バイト文字 0x00-0x7F, 0xA1-0xDF
2バイト文字の1バイト目 0x81-0x9F, 0xE0-0xFC
2バイト文字の2バイト目 0x40-0x7E, 0x80-0xFC

違いは文字集合です。1バイト文字はどちらも同じ(ASCII + JIS X 0201 カナ)ですが、2バイト文字はsjisはJIS X 0208 で、cp932はWindows-31Jです。

sjisに含まれていない文字

[さらに読む]
MySQL Innovation Day Tokyo で MySQL 8 の文字コードについて話した

MySQL Innovation Day Tokyo に参加して10分ほど喋ってきました。

ひさびさに巨大サキラちゃん登場。本人曰く5年間ほど倉庫に隠れてたそうです。

昼ごはんは今半のすき焼弁当でした。豪華!

会場の様子。百数十人で満員でした

以下わたしの発表内容。スライドはこちら https://tmtm.github.io/mysql-innovation-tokyo/

MySQL恒例「RCとはいったい…」案件

utf8の指定でwarningが出るようになった

mysql> set names utf8;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 3719): 'utf8' is currently an alias for the character set UTF8MB3, which will be replaced by UTF8MB4 in a future release. Please consider …
[さらに読む]
MySQLの日本語コレーション

4月にMySQLの日本語コレーションについて語り合う場に呼ばれていろいろ話を聞いてきました。すぐにブログを書こうと思ったんですが、はや2ヶ月経過…。

ときどき、自分がMySQLの文字コードに関して発表する際に、次のようなスライドをいれてるんですが、

MySQL 8.0 でとうとう日本語コレーションが入ることになったのに、なんか期待してたのと違いました。

で、その辺の話を聞きました(2ヶ月も経ってるのでうろ覚え)。

Q. わざわざ日本語ロケール作るんだったら日本人が扱いやすいロケールにしてほしい

[さらに読む]
MySQLの文字コード事情

この前 MySQL Casual に登壇して、「MySQLの文字コード事情」と称して発表してきました。

終電の都合で途中退席しましたが楽しかったです。また機会があれば参加したいです。

発表スライドはこちら

MySQLの文字コード事情 2017版 from Masahiro Tomita www.slideshare.net

以下、補足のような何か。

「Charset≒エンコーディング (MySQLに限らない)」

英語版のWikipediaでもcharsetCharacter encoding

[さらに読む]
MySQL で utf8 と utf8mb4 の混在で起きること

MySQL を UTF-8 で使おうと思ってハマりがちなのは charset utf8 を指定してしまうことです。

MySQL の UTF-8 には歴史的事情により utf8 と utf8mb4 の二つあります。

UTF-8 は1バイト〜4バイトで1文字が構成される文字コードですが、MySQL の utf8 は4バイト文字を扱うことができません。ハマりたくなければ utf8mb4 を使いましょう。

utf8 を使ってしまった場合に4バイト文字がどのように扱われるか、自分でもうろ覚えだったのでメモしておきます。

登録

接続が utf8mb4 でカラムが utf8mb4

あたりまえですが、そのまま登録されます。

mysql> insert into utf8mb4 (c) values ('美味しい🍣と🍺');
mysql> select * from utf8mb4;
+-------------------------+
| c                       |
+-------------------------+
| 美味しい🍣と🍺 …
[さらに読む]
6 件中 1 - 6 件を表示