トリミング2

閲覧数: 69(0)

WordPressの場合、Mediawikiより手厚い日本語環境(マルチバイト対応)が用意されているので、トリミングなんて話題が出るとは思わなかったけど、やはりどんな仕組みでも、シングルバイトとマルチバイトの問題は発生するようだ。手厚い日本語環境の分、問題が起きた時には返って重症化するってこともある。Mediawikiの時に何が起きていたのかおさらいすると、大まかに言って、日本語は基本的に2バイトで表現されている、英数字は1バイト。ブログなどで本文の一部を表示して、残りは「続きを読む」などの表現で省略しているケースが多々ある。このサイトも、今のテーマでは実装されている。これは手動ではなく、自動的に本文をカットして一部分のみを表示する仕掛けが裏で動いといると考えてまず間違いない。その時、英数字のみの文章なら、どこをカットしても問題ないが、日本語で書かれた文章を、2バイト区切りを意識せずにカットすると、2バイトで1文字なので、その真ん中でカットしてしまうと、文字として表現できず、文字化けを起こしてしまう。そうならないように、2バイト単位でカットする関数が用意されているので、その関数を使うように変更するのが、いわゆる日本語対応。Wordpressの場合は、その辺までは既に実装されているので、これまで問題は起きなかったけど、本文中に特殊文字が含まれていた場合、その特殊文字の部分でカットされると、文字化けするというちょっと高度な問題が発生した。テーマ部分の追加実装で解決したかったけど、どうやら難しいようで、結局、Wordpress本体に手をつけた。1バイトの特殊文字を、省略表示する時だけ、2バイト文字に変換する対応で回避することができた。実装量としては、ほんの一行ほどだけど、関数の入れ子関係が複雑でちょっと解決までに時間を要した。この対策は、Wordpress本体のバージョンアップに直接影響を受けるので、今後はバージョンアップには注意が必要。出来れば、本体以外の部分で回避する仕組みを思いつきたいところではある。

【最終更新日: 2016年3月19日】
カテゴリー公開タグ, , ,
ElasticPress 3.5
2020年10月22日

Elasticsearch用のプラグインであるElasticPressがメジャーバージョンアップ(3  続きを読む

Elasticsearch 6.8.11
2020年10月2日

2017年末に「2.4.6」から「5.6.5」へバージョンアップして以来の大幅バージョンアップです。  続きを読む

パンくずリスト詳細
2020年5月12日

テーマの「マイナーチェンジ」に伴って「パンくずリスト」の仕様を若干変更しました。一つ前のテーマではパ  続きを読む

カテゴリーを制限する
2020年5月11日

過去に何度も書いた「カテゴリー制限」の話、元はと言えば初期に書かれた「非公開」の記事が原因です。トッ  続きを読む

マイナーチェンジ
2020年3月23日

かれこれ一年近くほったらかしだったので、気合をいれて「テーマ変更」と思っていたのですが、、、いろいろ  続きを読む

6月の検索ワードまとめ
2019年6月30日

6月の検索ワードのまとめです。 意外なところで「zabbixダウングレード」が複数回検索され、単独の  続きを読む

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください