2012年6月 4日

[PHP-users 35723] Re: DOMDocument

鈴木さま、ご返答ありがとうございます。
文字コードは今まで何度もはまっております。
難しいです。


> 1. mb_detect_encoding を使って取得している文字列がどのコードであるとPHPが認識しているかを確認する。

自分のコード中で

foreach ($extracts as $value)
{
$result = trim($value->nodeValue);
var_dump(mb_detect_encoding($result));
}
を行ってみました。

結果はforeach()で沢山出力されますが、殆どが
string 'UTF-8' (length=5)
なのですが、中に何故か
string 'eucJP-win'
が含まれてもいました。

> 2. mb_internal_encoding
> を使って現在PHPに設定されているコードを確認する。ついでにスクリプトが書かれているテキストファイルの文字コードをもう一度確認してみる。

やはりUTF-8でした。
ファイルはデフォルトでUTF-8にしているのと、ファイルだけでなく、ブラウザ上でも文字化けしています。

> 3. php.iniのdefault_charsetをみてみる。

default_charset UTF-8 UTF-8
となっておりました。

> あとこのスクリプトはウェブサーバーで動かしているのでしょうか。その場合ブラウザーが認識しているコード、apacheが送り出しているといっているコード(AddDefaultCharset)とかも確認されてはどうでしょうか。

Apacheのlocalhostで動かしております。
LinuxではAddDefaultCharset設定していたと思いますが、Windowsではほぼデフォルトのまま使っていましたので追記しましたがやはりダメでした。


やっぱ難しいです。

"?贋?�?緇?_(Suzuki_Takamasa)"<takamasa@xxxxx> wrote:
> yk_mailing@xxxxx 様
>
> 文字コード悩ましいですよね。私もよくはまります。特にメール送信関連で。
>
> 送っていただいたスクリプトをよく読んでおりませんし検証もしていませんが以下を確認されてはどうでしょうか。
> 1. mb_detect_encoding を使って取得している文字列がどのコードであるとPHPが認識しているかを確認する。
> 2. mb_internal_encoding
> を使って現在PHPに設定されているコードを確認する。ついでにスクリプトが書かれているテキストファイルの文字コードをもう一度確認してみる。
> 3. php.iniのdefault_charsetをみてみる。
>
> あとこのスクリプトはウェブサーバーで動かしているのでしょうか。その場合ブラウザーが認識しているコード、apacheが送り出しているといっているコード(AddDefaultCharset)とかも確認されてはどうでしょうか。
>
> Windowsで書いた昔のスクリプトを何気にコピーしてlinuxのviでUTFのつもりで編集していると実はSJISだったりして、ディレクトリまるごとnkf
> -Lu -wしたりなんてことになった記憶が。
> _______________________________________________
> PHP-users mailing list PHP-users@xxxxx
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>
Yoshi Saito
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2012年6月 4日 00:41
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110841
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。