トリミング2

閲覧数: 69(0)

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

【最終更新日: 2016年3月19日】
カテゴリー公開タグ, , ,
アイキャッチ

最近、よそのブログでサムネイルをマウスオーバーすると、ビヨーンって拡大する奴があるでしょ?あれちょっ  続きを読む

Elasticsearch 6.8.11
blank

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

タイトルを抜粋する
blank

関連記事プラグインを使って、記事本文の下に「関連記事」を表示している。情報としては、タイトル、画像、  続きを読む

検索に悩む
blank

インターネットを使って情報を入手する時、得られた情報の品質は、検索サイトの精度というよりは、検索に使  続きを読む

子テーマ化詳細
blank

子テーマ化にあたって具体的に修正した部分の説明をします。まずは「header.php」から。サイトの  続きを読む

Tsubopedia
blank

先日、Tsubopedia用のmediawikiを1.25.1へバージョンアップしたばかりなんだが、  続きを読む

スポンサーリンク

コメントを残す

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