[英]PHP: Problems converting “’” character from ISO-8859-1 to UTF-8
[英]Converting ISO-8859-1 charcodes to UTF-8
我有一個看起來像這樣的輸入字符串:
4BFC434845000000
輸入字符串中的每兩個字符代表ISO-8859-1中的十六進制代碼。
4B
)中的前兩個字符代表數字4B 16 ,在ISO-8859-1中代表K。 FC
)代表數字FC 16 ,代表ISO-8859-1中的德語u Umaut ( ü )。 上面的示例字符串表示Küche ,這是廚房的德語單詞。
輸入字符串的長度保證為16個字符,因此所得的字符串將始終為8個字符。 未使用的字符(如示例中的字符)將為00
。
我知道我可以在PHP中使用iconv
或其他函數將ISO-8859-1字符串轉換為另一種字符編碼。 但是我不知道如何將ISO-8859-1字符代碼(例如FC 16或252 10 )轉換為UTF-8字符。
當然,我可以有一個關聯數組將所有字符映射到它們所代表的字符:
$table = array(
0x4B => 'K',
0xFC => 'ü',
// ...
);
實現相同目標的最佳方法是什么? 有沒有這樣做的PHP函數?
這相當瑣碎:將十六進制字符串轉換為二進制,將ISO-8859二進制轉換為UTF-8二進制:
$input = '4BFC434845000000';
echo iconv('ISO-8859-1', 'UTF-8', hex2bin($input));
(可選)在某些時候NUL
字節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.