プラグイン作者です。かなり不思議な現象ですね。おそらく環境依存だと思われます。
サーバー上の php.ini の内容および独自に追加した .htaccess の内容 (特に mbstring 周り) は分かりますでしょうか。
あと、改行コードは「半角スペース」ではありません。使用しているテキストエディターによりますが、Unicode 専用の特殊な改行コード (Line Separator, Paragraph Separator) を使っていないか確認してみてください。これらは、携帯向けに Shift_JIS に変換したとき、「?」になってしまう可能性はあります。
デフォルトテーマを使っていても、そのテーマをテキストエディターで編集していれば、上記の問題が出てきます。もし、テキストエディターで開いたことがなければ、FTP/SFTP ツールで改行コードの変換をしていないか確認してみてください。すべてバイナリーモードで転送しなおしてみるのも手です。
こんにちは。
私も同様の事例が出ています。
私の場合、投稿時にビジュアルエディタを使い 書いた文を改行をすると「半角スペース」が挿入される事が有ります。
携帯で見るとそこが「?」に置き換わってしまっています。(PCで見ると半角スペース)
今さっきhtmlエディタで既存の文に「半角スペース」を挿入して試してみたのですが それは半角スペースのままでした。
またテーマは編集を加えたものと 加えていないもので試してみましたが
結果は同じでした。
>サーバー上の php.ini の内容および独自に追加した .htaccess の内容 (特に mbstring 周り) は分かりますでしょうか
php,iniってphpinfoを実行させた時のPHP Core部分でしょうか?
どの項目が判れば良いのかお教えください。
また.htaccessは特に追加していないような…という感じです。
WordPress/2.6.2
PHP 5.2.6、MySQL 4.0.24
ゆりこさんお返事ありがとうございます
エディタも関係あるんですね!
普段はsafariの最新版(Win版)でビジュアルエディタを使ってるんですが
試しにIE7でビジュアルエディタ使って以下の様に投稿してみました。
「文章[半角スペース]単語[半角スペース]文章[Shift+Enterで改行]」
の部分が携帯で見ると「文章?単語文章改行」になってました
逆にその時は改行した部分での文字化けは無かったです。
改行すると必ず入ると言うわけでもないようです
.htaccessはErrorDocumentのエラーページ表示の指定だけで
他は全く触ってません。
FFFTPでアップロードしてますが、phpファイルは普段からバイナリで上げてます
アスキーなのはデフォルト設定のtxt,cgi,html,htm,plだけです。
改行コードへの変更を加えるようなオプションは使っていない状態です。
PHPinfoは
System/FreeBSD 6.1-RELEASE-p23
Multibyte Support/enabled
Multibyte string engine/libmbfl
Multibyte (japanese) regex support/enabled
Multibyte regex (oniguruma) version/4.4.4
Multibyte regex (oniguruma) backtrack check/On
この辺りですか?他に必要なことがあれば調べます。
投稿は主にPCなので、ブラウザとビジュアルエディタで
何かしちゃってるんでしょうか。
あまりしないんですが、携帯投稿ではそのような症状は出ていません。
投稿した後からeditでPC上から
「半角スペースに見える部分or半角スペース」を削除すれば?も消えます。
携帯からeditするとそのまま?が付いてるので
携帯では直接表示されている?を削除する状態になります。
環境依存なら見ていただいた方が早そうですし、URL晒しておきます
http://emoji.net/
いろいろ調査した結果、WordPress のリッチエディタが使用する半角スペースが U+00A0 (NO-BREAK SPACE) であることが原因と判明しました。今回の事象は、テキストエディターもサーバー環境も関係なさそうです (一般に、エディターやサーバー環境が原因による文字化けは多いのですが、今回は違うということ)。
文字列と文字列の間に半角スペースを入れたときは、通常の U+0020 が入りますが、文末とか、スペースを2個以上入れたときは、ウェブブラウザーに削除されないよう U+00A0 を使うようです (ブラウザーは、2個以上の連続した空白や文末の空白を削除するのが普通です)。
ところが、U+00A0 の空白は Shift_JIS には存在しない文字のため、変換時に ? になってしまったようです。
これを解決するには、UTF-8 → Shift_JIS の変換時に U+00A0 の空白を U+0020 の空白もしくは 「 」に変換してやればよさそうです。
この対応を入れ込んだ Ktai Style 1.45 ベータ2をしばらくしたら出してみます。
ゆりこさん、ありがとうございます!
とてもわかりやすい原因の説明もありがとうございました
Ktai Style 1.45 ベータ2、リリースされたら
是非利用させていただきます
ありがとうございます。
お手数をお掛け致しますが、よろしくお願い致します。