あーかいぶすハイディフィニション

ここはもう更新しとらんのじゃ

データベースにサロゲートペア範囲の文字はいんの?

RAM1Gbyte の VPS だと Gitlab が動かなくて(gitlab-shell だけなら CLI から動いた)プランをあげたらサーバが更地にされてしまってオゲエエエ!となったワイです。その作業の最中、RDBMS におけるサロゲートペア(外字)の扱いがどうなってるのか、気になってしまったので調べたメモ。

MySQL

UTF8MB4 を指定すれば扱える。携帯の絵文字なんかも突っ込んでもちゃんと保持できるはず。扱えなかった時って、扱えなかった範囲だけ削除して残りの部分だけ挿入するんだっけか?なんにしろエンジニアは死ぬ。
{MySQL :: MySQL 5.5 Reference Manual :: 10.10 Supported Character Sets and Collations]
MySQL 5.5 からかな、対応してんの。5.1 にはないっぽい!

PostgreSQL

UTF8 を指定すれば扱える。ただ途中のマイナーバージョンアップ?あたりで仕様変更をかましたらしくて、気付かないと UTF8 なのに扱えないじゃない!となってエンジニアは死ぬ。
https://www.postgresql.jp/document/8.4/html/multibyte.html
参考:
http://postgresql.at.webry.info/200703/article_5.html
PostgreSQL 8.1.6 以前と 8.2.0・8.2.1 じゃなければ悲劇は防げるのかな?検証はしてません!

こんだけ。わしのメモじゃったね。