dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。

ファイルの文字コードがEUCのファイルの中に、
なぜか、文字コードがASCIIである文字列があります。
この文字列は、外部から受け取るカタチなので、
これはこれで、ASCIIでも、しかたないのかなという風に思い、
それならば、受け取った後、EUCに変換すればいいやと考え、
mb_convert_encoding($var,"EUC-JP","ASCII")を使って、変換を試みるも、
ASCIIのままなのです。

ASCIIである文字列には、変換されない鉄壁さというものがあるのでしょうか?
変換処理後に、mb_detect_encoding()で検査しますが、やはりASCIIのままです。

それならば!、ということで、
受け取る値(ここでは例として、"This_Value_is_ASCII_Encoding_hogehoge9999")を
いったん手動のコピペ操作をして、

$UketoruAtai = "This_Value_is_ASCII_Encoding";

とし、
その値もやはり、ASCII文字列になっているので、
この、手動コピペ文字列ならば文字コードの変換はできるだろうと思い、

上記のmb_convert_encoding()の処理をしたわけですが、
この場合でも、やはり ASCIIは鉄壁でした。

いったい、これは、なんなんでしょうか、、、。

ちなみに、このASCII文字列は、英数字のみ(当たり前か。笑)の文字列です。

このASCII文字列を、EUC-JPにする手助けを、どなたか宜しくお願い致します。

A 回答 (1件)

EUCというのは、ASCII規格を拡張する各種の規格の一つです。


したがって、それらの拡張規格では ASCII 文字の部分は共通です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ということは、
ASCIIからEUCへの変換は無意味ということになりますでしょうか。

話はややソレますが、
UTF-8のファイルに書かれていた、

$var = 'ABCDE';
echo $var;

というコードを、
EUC-JPのファイルにコピペし、実行した所、

$varが未定義です。とのエラーが吐かれました。
これには驚きました。

で、'ABCDE'の文字コードが原因なのかと思い、この質問を立ち上げましたが、
実際には、コピペに問題があったようです。
なぜかと言いますと、

手打ちで、

$var = 'ABCDE';
echo $var;

を、EUC-JPのファイルに打ち込み、実行してみると、
「未定義ですよ~」のエラーが消えたからです。

英数字の部分においては、
UTF-8も、EUC-JPも同じだと思っていたのですが、
違いましたでしょうか…?

本件の、未定義ですよ~ がなぜ吐かれたのか気になっております。
もし、何か思い当たることなどがありましたら、教えてください。

お礼日時:2010/11/27 01:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!