3

Unicode と ASCII 文字を含む文字列があります。

ASCII を Unicode 文字に変換するために使用できますutf8_decodeが、Unicode を Unicode 文字に変換することもできます。混合文字列で ASCII 文字のみをフィルタリングまたは Unicode に変換するにはどうすればよいですか?

例えば:

utf8_decode(& #225; rỉ);
~> á rỉ
4

3 に答える 3

4

2つのこと。ASCII 文字は 7 ビット、0x00 ~ 0x7F です。したがって、Unicode 文字列を使用している場合、ASCII 文字は Unicode でも同じであるため、変換する必要はありません...

今、あなたの á は 0xE1 なので、ASCII ではなくISO Latin 1. そして、1 つの文字列に 2 つのエンコーディングを含めることはできません (または、たわごとが発生しています....)。したがって、必要なのは ISO Latin 1 から UTF-8 に変換することです。

于 2012-05-27T07:26:09.197 に答える
1

á は ASCII 文字ではありません。ASCII 文字セット テーブル

これを試すこともできます。

echo mb_convert_encoding('á rỉ', "UTF-8", "UTF-8");
于 2012-05-14T07:20:40.927 に答える
-1

あなたが使用することができます$string = iconv('ASCII//TRANSLIT','UTF-8', $string);

于 2012-05-14T06:26:38.147 に答える