簡體   English   中英

將ISO-8859-1字符代碼轉換為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM