[PHP-users 32021] Re: 「〜」が「?」に文字化けするのですが、対応方法を教えていただけますでしょうか?

Hirohisa Kuwata z-kuwata @ sra.co.jp
2007年 4月 23日 (月) 10:34:42 JST


桑田です。

>また、「〜」を入力すると、html上では「〜」の部分が「?」となってし
>まいます。

というのは、IEで入力した場合ですか? FireFoxで入力した場合ですか?

Javaでもよくある問題ですね。

http://ja.wikipedia.org/wiki/Unicode の WAVE DASH - FULLWIDTH TILDE
問題を参照のこと

IEで使っている変換テーブルと、FireFox等が使っているUnicode変換テー
ブルが異なるのが原因です。
その為、何の対応も行なっていない場合は例えば、

・FireFoxから「〜」入力
  → FireFoxでは正常に見えるがIEでは空白に見える
・IEから「〜」入力
  → IEでは正常に見えるがIEでは?に見える

という現象が起きたりします。

対応としては、PHPではこの対応は行なったことがないのですが、Javaの
時は独自の変換ロジックを使って対応した記憶があります。

以上

-- 
 Hirohisa Kuwata
  mailto:z-kuwata @ sra.co.jp


@ Fri, 20 Apr 2007 10:26:49 +0900
  daisuke <daisuke.ja @ gmail.com> wrote in message
    <462816D9.1080102 @ gmail.com> ...

>お世話になっております。だいすけと申します。
>
>某レンタルサーバのVPSを利用しています。
>
>環境は以下の通りです。
>==================
>FreeBSD 4.7-RELEASE-p28
>Apache 1.3.37
>PHP 4.4.2(※詳細は後述)
>Perl 5.8.4
>MySQL 4.1.19
>(MySQLの文字セット:EUC-JP)
>==================
>
>
>また、phpinfoの結果で、mbstringのところをそのままコピペしますと、
>
>※ PHPの詳細
>=================================================
>Multibyte Support enabled
>Japanese support enabled
>Simplified chinese support enabled
>Traditional chinese support enabled
>Korean support enabled
>Russian support enabled
>Multibyte (japanese) regex support enabled
>--------------------------------------------------
>mbstring.http_input pass
>mbstring.http_output pass
>mbstring.internal_encoding novalue
>=================================================
>
>といったかんじです。
>
>***********************************************************************************
>で、Modx0.9.5を導入しました。
>なお、Modxが吐き出すHTML(実際は動的なphpファイルですが、みせかけは
>「.html」)
>のソースには、<?xml version="1.0" encoding="UTF-8"?>とありますため、
>実質「mbstring.http_output」は「UTF-8」だと思われます。
>
>
>で、正常に一通り正常動作しているように見えるのですが・・・、
>また、「〜」を入力すると、html上では「〜」の部分が「?」となってしまいます。
>***********************************************************************************
>
>***********************************************************************************
>また、同じサーバで、Movable Type 3.34を導入したのですが、これも、
>「〜」を入力すると、html上では「〜」の部分が「?」となってしまいます。
>***********************************************************************************
>
>これに対する対応はどうすればいいのでしょうか?
>
>/*
>以前、某ポータルサイトでPHPの開発をしてたのですが、
>そのときは、
>「〜」を入力したいとき、<線が太くてギザギザしてる「〜」>
>(<=エクリプスで開いたときの表示。エクリプスの文字コード設定は忘れてしま
>いましたが、たぶん、EUC)
>が記載されているテキストファイル(そのテキストファイルの文字コードは忘れ
>ました)がすでに用意されていて、
>それをコピペしたら、問題なくいった記憶があるのですが・・・
>*/
>
>
>以上、よろしくお願いいたします。



PHP-users メーリングリストの案内