ne-design
メンバー
4 years前の投稿 #
WordPressを日本語化した後、W3C Markup Validation Serviceを使うと、下のようなエラーが出ました。
The error was: utf8 "\xE5" does not map to Unicode
WordPress本家(wordpress.org)にあるWordPress2.5を使うとエラーはでなかったので.moファイルが原因ではないかと思います。
問題となっている部分は予想ですが
「 に含まれる投稿をすべて表示」
と
「2008 年 4 月」
例えば上のアーカイブの場合は2008と年の間にスペースがあるため、Validateされていないと考えています。この問題を解決するためにはどうしたらよろしいでしょうか?
ne-design
メンバー
4 years前の投稿 #
一応、確認しましたがバイナリーモードでアップされていました。
日本語は問題なく表示はされています。
wordpress2.5 日本語版で試しました。
This Page Is Valid XHTML 1.0 Transitional!
となりました。
試したサイトはhttp://www.outbreak2000.com/です。
vicunaテンプレートを使用しているhttp://www.outbreak2000.com/katsusyo/では
This Page Is Valid XHTML 1.0 Strict!
となりました。
参考になれば。
ne-design
メンバー
4 years前の投稿 #
katzeさん、shokun0803さん、アドバイスありがとうございます。
こちらがうまくいっていないページです。
http://www.ragard-jp.com/
不思議なことに右クリックでページのソースを表示し、W3C Markup Validationに
ソースをそのまま貼り付けると問題なくValidateされました。
vicunaを調べて、色々試してみます。
ne-design
メンバー
4 years前の投稿 #
試行錯誤を繰り返し、無事解決できました。
原因はUTF-8にBOM(Byte Order Mark)が含まれているからでした。
解決方法
オリジナルテーマを作る際に使ったDreamweaverはデフォルトで
UTF-8になっており、それをUTF-8 without BOMにし、上書きしました。
この問題はWordPress本体ではなくテキストエディタのほうの問題でした。
みなさんのご協力ありがとうございました。
本家のフォーラムではよくある問題みたいなので、時間がある時に
日本語で記事にしたいと思います。
追記:海外のプラグインの中にもBOM問題があるみたいです。(ダウンロードしたプラグインをBOMなしで保存することにより解決ができます。)
ne-design
メンバー
4 years前の投稿 #
@katzeさん
調べていただきありがとうございます。
おっしゃる通り、Recent Comments系のプラグインが原因で最後のValidationが
うまくいきませんでした。
Recent Comment系のプラグインをオフにすると問題はなくなったので
katzeさんが仰るとおり、日本語文字が途中で切られているのが
UTF-8に定義されていないバイト列として残り、それが原因となりエラーが出ていました。
まだ、解決には至っていませんがコメントを付けたユーザー名と記事のタイトル名
のみを表示させることによって、文章中の途切れを回避しようと思っています。
ne-design
メンバー
4 years前の投稿 #
get-recent-commentsというプラグインを使っています。
mb_substrを入れることによって無事、解決することができました。
他の方々の参考のためにも書いておきます。
1493行目にある
if (strlen($text) > $length) {
を下のコードに変更します。
if (function_exists('mb_strimwidth')) {
$text = mb_strimwidth($text, 0, $chars_per_comment, '...', 'utf-8');
}
else {
みなさんのご協力ありがとうございました。
マルチバイトは本当に厄介ですね・・・。