サポート » プラグイン » Ktai Style 1.44で半角スペースが文字化けします

  • 携帯での記事閲覧時に文末などに半角で「?」が付いてしまいます
    改行時などに記事に入ってしまった半角スペースが
    全て半角?に化けてしまってるようなのです。
    私のP905iや、au端末の友人が確認してくれましたが
    やはり「?」が表示されてしまいます。

    これまではプラグイン本体の最初の方に
    mb_substitute_character(’none’);
    と書き込んで強引に回避してました。
    が、1.44ではそれも効かないようで
    また半角スペースが文字化けして記事のあちこちに
    半角?が表示されてしまっています。

    Ktai Styleのデフォルトテーマを利用しても同様です。
    何が原因なのかわからないのですが改善策があればご教授下さい。
    他に同様の質問も見掛けないので私の環境だけって
    可能性が高いのかなぁとも思うので、足りない情報があればご指摘下さい。

    WordPress/2.6.2
    利用サーバー/さくらインターネットスタンダード(PHP 5.2.6、MySQL 4.1.22)
    他使用中のプラグイン/Akismet、Contact Form 7、My Category Order、Simple Tags、JSeries Notifier、Ktai Entry
    ※他プラグインについてはKtai Style以外を全て停止してみても同様でした。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    プラグイン作者です。かなり不思議な現象ですね。おそらく環境依存だと思われます。

    サーバー上の 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

    トピック投稿者 ゆたか ちひろ

    (@yuta)

    ゆりこさんお返事ありがとうございます

    エディタも関係あるんですね!
    普段は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/

    モデレーター IKEDA Yuriko

    (@lilyfan)

    いろいろ調査した結果、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をしばらくしたら出してみます。

    トピック投稿者 ゆたか ちひろ

    (@yuta)

    ゆりこさん、ありがとうございます!
    とてもわかりやすい原因の説明もありがとうございました

    Ktai Style 1.45 ベータ2、リリースされたら
    是非利用させていただきます

    ありがとうございます。

    お手数をお掛け致しますが、よろしくお願い致します。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「Ktai Style 1.44で半角スペースが文字化けします」には新たに返信することはできません。