カテゴリー
WordPress

WordPress 上で utf8mb4 を使う話。

The same article in English

 昨日,WordPress 4.2 がやってきた。 WordPress の Updates ページから更新したが,我が家は,マルチサイトタイプなので,その後, Upgrade Network が必要である。うちの SSL は自前認証局を使っているので, Upgrade Network をやる前に, wp-includes/certificates/ca-bundle.crt に自前 CA のデータを書き加えてやっておかないといけない。同様に下記の 2 行も wp-includes/class-http.php に加えてやる必要がある。これは,クライアント認証をクリアするためね。

  • curl_setopt( $handle, CURLOPT_SSLCERT, 'clientcert.pem の絶対パス' );
    curl_setopt( $handle, CURLOPT_SSLKEY, 'clientkey.pem の絶対パス' );

 この辺の話は,必要なら「WordPressでの「SSL3_READ_BYTES:sslv3 alert handshake failure」を解決。」を参照してください。

 ところで, WordPress 4.2 によると, WordPress は utf8mb4 をサポートするようになったようだ。ということで, JIS X 0213 の第 3 ・ 4 水準漢字の 4-byte になる下記の文字も記事内で使えることになった。ということは,いろんな絵文字も使えるわけだ。
 実は, 2013‎.5‎.22 に,この件やってみたんだけど,記事内では下記の文字は表示できなかった覚えがある。いや,スンバらしい。
𠀋 𡈽 𡌛 𡑮 𡢽 𠮟 𡚴 𡸴 𣇄 𣗄 𣜿 𣝣 𣳾 𤟱 𥒎 𥔎 𥝱 𥧄 𥶡 𦫿 𦹀 𧃴 𧚄 𨉷 𨏍 𪆐 𠂉 𠂢 𠂤 𠆢 𠈓 𠌫 𠎁 𠍱 𠏹 𠑊 𠔉 𠗖 𠘨 𠝏 𠠇 𠠺 𠢹 𠥼 𠦝 𠫓 𠬝 𠵅 𠷡 𠺕 𠹭 𠹤 𠽟 𡈁 𡉕 𡉻 𡉴 𡋤 𡋗 𡋽 𡌶 𡍄 𡏄 𡑭 𡗗 𦰩 𡙇 𡜆 𡝂 𡧃 𡱖 𡴭 𡵅 𡵸 𡵢 𡶡 𡶜 𡶒 𡶷 𡷠 𡸳 𡼞 𡽶 𡿺 𢅻 𢌞 𢎭 𢛳 𢡛 𢢫 𢦏 𢪸 𢭏 𢭐 𢭆 𢰝 𢮦 𢰤 𢷡 𣇃 𣇵 𣆶 𣍲 𣏓 𣏒 𣏐 𣏤 𣏕 𣏚 𣏟 𣑊 𣑑 𣑋 𣑥 𣓤 𣕚 𣖔 𣘹 𣙇 𣘸 𣘺 𣜜 𣜌 𣝤 𣟿 𣟧 𣠤 𣠽 𣪘 𣱿 𣴀 𣵀 𣷺 𣷹 𣷓 𣽾 𤂖 𤄃 𤇆 𤇾 𤎼 𤘩 𤚥 𤢖 𤩍 𤭖 𤭯 𤰖 𤴔 𤸎 𤸷 𤹪 𤺋 𥁊 𥁕 𥄢 𥆩 𥇥 𥇍 𥈞 𥉌 𥐮 𥓙 𥖧 𥞩 𥞴 𥧔 𥫤 𥫣 𥫱 𥮲 𥱋 𥱤 𥸮 𥹖 𥹥 𥹢 𥻘 𥻂 𥻨 𥼣 𥽜 𥿠 𥿔 𦀌 𥿻 𦀗 𦁠 𦃭 𦉰 𦊆 𦍌 𣴎 𦐂 𦙾 𦚰 𦜝 𦣝 𦣪 𦥑 𦥯 𦧝 𦨞 𦩘 𦪌 𦪷 𦱳 𦳝 𦹥 𦾔 𦿸 𦿶 𦿷 𧄍 𧄹 𧏛 𧏚 𧏾 𧐐 𧑉 𧘕 𧘔 𧘱 𧚓 𧜎 𧜣 𧝒 𧦅 𧪄 𧮳 𧮾 𧯇 𧲸 𧶠 𧸐 𧾷 𨂊 𨂻 𨊂 𨋳 𨐌 𨑕 𨕫 𨗈 𨗉 𨛗 𨛺 𨥉 𨥆 𨥫 𨦇 𨦈 𨦺 𨦻 𨨞 𨨩 𨩱 𨩃 𨪙 𨫍 𨫤 𨫝 𨯁 𨯯 𨴐 𨵱 𨷻 𨸟 𨸶 𨺉 𨻫 𨼲 𨿸 𩊠 𩊱 𩒐 𩗏 𩙿 𩛰 𩜙 𩝐 𩣆 𩩲 𩷛 𩸽 𩸕 𩺊 𩹉 𩻄 𩻩 𩻛 𩿎 𪀯 𪀚 𪃹 𪂂 𢈘 𪎌 𪐷 𪗱 𪘂 𪘚 𪚲

 ということで,「私,𩸽の開きを焼いたのが大好きなのよ」なんちゅうこともブログにかけるわけだ。ハハ。おっと,書き忘れるところだった。もちろんだけど, SQL Server の utf8mb4 サポートは当然ながら,必須ダヨ。

「WordPress 上で utf8mb4 を使う話。」への25件の返信

o6asanさん、最近お忙しそうですね。
「新しい投稿をメールで受け取る」にチェックを入れているのですが、
𠀋から 𪚲までの一覧と、
>ということで,「私,𩸽の開きを…」
の𩸽のところ、全て無い状態でメールが来ました。
掲示板書き込みなどでは、その部分は文字コードになるんですが、全くなくなっているんです。少し空白がある程度で。

Xserverのメールですから、SquirrelMailが使われているんですが。
メールクライアントがutf8mb4 をサポートしないとこうなるのかな?
面白い現象でしたので、お知らせしておきます。

りりさん,おはようございます。

早速のチェックありがとうございます。

メールでのサポート状況というは,どこがサポートしていないのかというのは,難しい部分ですね。
うちの通知メールは,Yahoo.comで受け取っているのですが,やはり同じ部分が表示されません。 Web でも pop でも同じになります。ただし,空白ではなく, ? です。

もしかしたら,クライアントだけでなく,メールサーバの対応状況というのも,関係してくるのかも???最近,メールサーバを全く触らなくなったので,全然わからないですが……

> SQL Server の utf8mb4 サポート
上記については, @pages でテストしてみたんです。こんな状態です。
WordPress 4.2 なのにホッケの漢字が出ない。@PAGES サービス終了

うーん、いろいろありますねーーー
こちらに書いたように、コメント通知は、完全に文字化けしています。Viewにすると読めるんですが。
http://todos.xsrv.jp/2patiolan/todos.cgi?no=54

あと前に「新しいコメントをメールで通知」にチェックしたのに来ないとこちらで書いたことがありましたが、どうも、その後に来る
「メール通知を有効化するには以下から認証を行なってください。」を見過ごしていたようでした。

通知メールの送信者は、wordpress.comなんですね。そこのサービスを使うと言うことになるのかな?

りりさん,こんばんは。

> 通知メールの送信者は、wordpress.comなんですね。
> そこのサービスを使うと言うことになるのかな?

はい,そうです。

通知メールの文字化けですか。実は,私も他の方のサイトで 4 月半ばから経験していて,でも,そこのサイトでほかの方は経験されていないようなので,私の環境だけかもと,放置状態だったのですが, WordPress.com のフォーラムに質問してみたほうがいいかもしれません。
この機能は,Jetpack というプラグインに含まれているんです。

画像を追加しましたが
http://todos.xsrv.jp/2patiolan/upl/1430049019-1.png

このo6asanさんのコメント通知メールは、文字化けしていません。

>もう一度、HTMLパートを優先するを「はい」にしてみます。
>それで、また文字化けしたら、ここの設定次第ということになるかもしれません。

と、TODOSのスレッドに書いていますが、それが関係ないなら、何か、wordpress.comの調子にムラがあるのかも?

りりさん,こんにちは。

ありがとうございます。
どうもやはり Jetpack に関係する現象ではないかと思い,現在フォーラムで質問中で,回答待ちの状態です。

当該メールは Content-Type: multipart/alternative; boundary="b1_xxxxxxxx" の形なのですが,私としては,パートごとにで文字コードが入り組んでいるときにうまく解析できていないような感触を持っています。

あっ、こちらの前にお書き込みくださいましたね。
http://todos.xsrv.jp/2patiolan/todos.cgi?mode=view2&f=54&no=8

入れ違いになりましたが、うちのほうは、ここに書いたように症状が出なくなり、一回だけのことでした。

そう言えば
>Subject の頭を半角英数で始めると,それ以降の和文がすべて文字化

文字化けしたのは、o6asanさんと「o」で始まっているコメントでした。

もう一度、半角英数で始まるコメントを続けていただけますか?
自分で書いた物は、通知されないので。

o6asanという言葉で始まっているコメントは,りりさんがお書きのものですよね。

通知メールでは,返信に対する元のコメントが先に引用されるので,おっしゃっているテストをするためには,りりさんのほうで,半角英数を使ったコメントを書いていただく必要があると思います。

ところで,今までに私が保存している文字化けメールを見ると,頭に半角英数があってもまともな場合もあり,どうも結果は不安定のようで,今一つ,よくわかりませんです。

o6asanさん、そうですよね。o6asanさんという呼びかけで始まるコメントは今までも結構あったと思います。
ですが、o6asanさんが、o6asanという書き出しで始められたからか、2015/04/29 at 1:14 PM のコメント通知は、また文字化けしました。

前にこちらに書いたように、
http://todos.xsrv.jp/2patiolan/todos.cgi?no=48
本文中に特別な文字があると化けるということもありました。

でも、今回のは、テキストは正しく送信されているのに、HTMLメールの日本語部分が文字コードも何もなくて、データが無くなっているという感じがします。

うちでは、テキストにすれば読めるので良いのですが、ある環境では何をしても読めないということが起こるかもしれませんね。

biglobeのWebメールは、charset=utf-8
なんですが、SquirrelMailはeuc-jpとなっています。

こんなページを見つけました。http://taka2.info/20120705/squirrelmail-php54/
>◾PHPには、htmlspecialchars という、HTML特有の文字を変換する関数があります。
◾PHP 5.3→5.4で、htmlspecialchars のデフォルト文字エンコーディングが、ISO8859-1 から UTF-8に変更になりました。
◾SquirrelMail は、言語設定が日本語(ja_JP)の場合、日本語文字を EUC-JP エンコーディングで出力します。
◾EUC-JP で表現された文字バイト列は、UTF-8として解釈すると不正な文字列であるということになってしまいます。
◾htmlspecialchars は不正な文字は破棄する仕様になっています。

以上の結果として、SquirrelMail を PHP5.4 で動かすと、日本語文字がまったく表示されない、ということになってしまいます。

ということで、何かのきっかけで、HTMLで、「日本語文字がまったく表示されない」ということが起きるのかも?

SquirrelMail は、言語設定が日本語(ja_JP)の場合、日本語文字を EUC-JP エンコーディングで出力します。

というのが怪しいです。

さて、しばらくutf-8のbiglobeでコメント通知を受けてみますので、よろしくお願いします。

りりさん,ありがとうございます。

> ただ…WordPressから送られてくるコメントは、特殊なので…他のメールでは
> 文字化けはないので、Xserverのサポートに問い合わせるのも無駄な気がします。
> SquirrelMailもフリーなWebメールソフトですし…

うちも,化けるのは WordPress.com 経由で送られてくる Jetpack だけなんですよね。
Jetpack の PHP スクリプトのどこかに原因があるのではないかと思っているのですが,自分ではわからないので,回答待ちです。

フォーラムのスタッフの話では,直接開発者に問い合わせてくれるそうなので,気長に待ってみようと思います。

いただいた情報はフォーラムに書き込んでおきます。

おはようございます。
biglobeのWebメールも文字化けしました。

>Jetpack の PHP スクリプトのどこかに原因があるのではないかと

はい。どうもコメント内のどこか…割とトップのほうに、半角英文があると、全部英文と判断してしまう感じがします。biglobeでも返信とするとテキスト文字は読めるので、HTML出力の問題のように思います。文字化け画像はこちらに載せました。
http://todos.xsrv.jp/2patiolan/todos.cgi?mode=view2&f=54&no=11
biglobeがUTF-8なので□ではなく、‘ãになるようです。

多分、メールソフトで受け取っても、HTMLなら化けるんじゃないかと思います。
Jetpackの問題なら、これを機に改善されると良いですね。
でも、今まで気づかれなかったのが不思議です…いろいろなバージョンが変わって、最近出現したのかもしれません。 PHP のバージョンアップなども絡んでいるかも?

コメント通知は、前に登録したメールアドレスにも来るんですね。
書き込んだときのメールアドレスには来ませんが、他方のアドレスに通知されます。
2015/05/01 at 6:29 AM のコメントは、Xserverの方に通知され、またまた文字化けしました。
敢えて、「おはようございます。」から始めたのですが…
それで、今、メールアドレスをヤフーにしてみました。

> でも、今まで気づかれなかったのが不思議です…
> いろいろなバージョンが変わって、最近出現したのかもしれません。
なんですよね。私は,今回のりりさんの文字化けについてのコメントを見るまでは,自分のブログでこの通知機能を使ったことがなかったのですが,ほかの方のブログでは使っていました。

しかし,「2015/04/16 18:24」までは文字化けの経験がないんです。

PHP のバージョンと Jetpack のバージョンはこの問題に関係ありそうですねぇ。

これで文字化け確認は最後になりますが、ヤフーメールは、o6asanさんがお書きのように、どうやっても読めない事態になりますね。
でも、返信からテキストに変更とすると、一部だけ日本語が現れたのが不思議でした。
http://todos.xsrv.jp/2patiolan/todos.cgi?mode=view2&f=54&no=12
一般には、メールソフトでテキスト表示にすれば、何とか読めるかと思いますが。

いろいろと調べていただいて,ありがとうございます。

私見ですが,どうも, Jetpack のほうに原因があることは,間違いない気がします。

昨日は1日熱を出して寝込んでいました。連休になると熱を出して寝込むなんて,昔を思い出してしまいました。

今晩は

>昨日は1日熱を出して寝込んでいました。
お体は大丈夫でしょうか?
ゆっくり休養してください。
俺はなんか新サーバーのことでちょこちょこやっていて
連休おわっちゃいました。

それとすいません。
物凄く恥ずかしいのですが
wordpressの推奨環境ってあったんですね・・・。
今はじめて知りました。
新サーバーのphpとmariadbのバージョンどうしようかなと
考えたんですが、php5.6とmariadb10でつくることをきめました。

くりくりさん,こんにちは。

> お体は大丈夫でしょうか?
ありがとうございます。お陰さまでほぼ完全に回復しました。 GW が終わってしまいましたが……(涙目)。

サーバお試し,お疲れさまです。

> wordpressの推奨環境ってあったんですね・・・。
これですね。私も,不具合が起こらない限りあまり意識しませんが。大体いつも,その時点でのかなり前のバージョンになってますから,新し物好きの私としては,新しいほうで動くかどうかのほうが問題でして。

MariaDB のほうに,こんなのもありますよ。もうすでに,ちょっと古くなってます……

今晩は
>GW が終わってしまいましたが……(涙目)。
土日がお休みですからなんかできるかも???

さて、社長とお話して新サーバーを借りることが決定しました。
CentOS5にすでにwordpressが300個くらい入ってるサーバーにさらに数百入れるいれるつもりだったのでまったをかけました。CentOS5は後一年はんで終わりだしサポートが終わって600以上のwordpressのお引越しなんて嫌ですよw

それと

>MariaDB のほうに,こんなのもありますよ
このようにmariadbにしてるのが多いのかな?
CentOS7になってからmysqlをみかけなくなりましたね。

くりくりさん,おはようございます。

> サポートが終わって600以上のwordpressのお引越しなんて嫌ですよw
本当に!!
何にしろ,サポートが終わるときの移行って大変ですね,費用的にも。いまだに XP 系を使っているところもそういう理由があるんでしょうが,いつまでも放っておくと危険もありますしねぇ。 Web サーバとしては,ネットに繋がなくては,意味ないですし。

> CentOS7になってからmysqlをみかけなくなりましたね。
CentOS7 は普通にやったら, MariaDB5.5 が入るんでしたっけ。そういえば,すでに動いてるサーバでも,結構大きいとこがかなり MariaDB になっちゃいましたよね。

まぁ, MySQL は商用の関係が ORACLE に行っちゃってますからね,もっとあっさりとオープンソースとしてだめになるかもと思ってたんですが。もっとも, ORACLE のポリシーからして,今後もオープンソースとして生き残っていくというのは難しいのかもしれません。

今晩は

おかげさまで新サーバーというか
新プランのサーバーを借りることができそうです。
まだ、発表してないみたいなんですが、これから
そのプランでレンタルを開始するみたいです。

当初予定していたのがcore2duo世代のXeonに年間50万とかうんざりしていたんですが、最新のXeonにメモリ: 16GBとても満足いくスペックになりました。

うちはちょっと前までみんなが使うパソコンの方が全然スペックが良かったんです。pentium4の1Gでどうしろと?
この乗り換えるサーバーもPentium Dual-Coreの2Gですよ。
これだってCeleronの1Gでrhel5をCentOS5に変更して月一万コストダウンして2倍くらいの能力にしたんです。
見えない所で活躍していたんですが、
この辺全然評価されませんでした(笑)

くりくりさん,おはようございます。

> 最新のXeonにメモリ: 16GBとても満足いくスペックになりました。
良かったですね。

サーバってまた要件が違うものですが,それでも素の OS はストレスなく動く環境はほしいですよね。

o6asan へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です