MTで記事が途中で切れてしまう時は4バイトの文字が交じっているかも?

Movable Type でつくったサイトで「ブログ記事が途中で切れてしまう」という相談がありました。

そのデータを自分のところの環境にもっていっても同様の症状がでるので、MT側の問題かデータの問題かどっちかだろうなぁ、とおもっていたら、切れてしまうところにある文字が4バイトの文字だったようです。

UTF-8で4バイトになる文字 at softelメモ
https://www.softel.co.jp/blogs/tech/archives/596

日本語に限らず,絵文字や中国語とかにも4バイトの文字があるようですね。

ということで、MTの問題ではなくて、MySQLのバージョンと文字コードの指定が影響している様子。

【MovableType, MySQL】記事中に BMP 外の文字を使う | blog.remora.cx
http://blog.remora.cx/2010/07/use-non-bmp-characters-in-movabletype.html

MySQLのバージョンもあげて、文字コードもutf8mb4に指定したりする必要あり。今回はそういう対応が出来ないので仕様とするしかないのですが。。。

4byte文字を使っていると「Incorrect string value」というエラーがでます。

今回は動作確認用に原稿をコピペして渡したり、txtで渡したりしてその間に4バイトの文字が別のにかわったりで確認環境を揃えられずに原因を調べるまでにだいぶ時間がかかってしまったのが反省。

多言語なサイトを作ってる方にしては当然な話なのかもしれませんが、知らなかったのでメモメモ。

memo


Comments

comments powered by Disqus