トリミング2

閲覧数: 69(0)

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

【最終更新日: 2016年3月19日】
カテゴリー公開タグ, , ,
検索精度を高める
2020年11月1日

検索ネタを連発するのはElasticsearchやElasticPressがバージョンアップした時の  続きを読む

ElasticPress日本語設定2020年版
blank
2020年10月29日

ElasticsearchをWordpressで利用するためのプラグインであるElasticPres  続きを読む

ElasticPress 3.5
blank
2020年10月22日

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

Elasticsearch 6.8.11
blank
2020年10月2日

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

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

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

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

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

コメントを残す

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