【发布时间】:2017-07-11 12:02:12
【问题描述】:
我有一个如下所示的输入字符串:
4BFC434845000000
输入字符串中的每两个字符代表 ISO-8859-1 中的十六进制代码。
- 示例中的前两个字符 (
4B) 代表数字 4B16,在 ISO-8859-1 中代表 K。 - 后两个字符(
FC)代表数字FC16,代表德语中的u元音变音(ü) ISO-8859-1。
上面的示例字符串表示 Küche,这是德语中厨房的意思。
输入字符串保证为 16 个字符长,因此生成的字符串将始终为 8 个字符长。未使用的字符(如示例中的)将是 00。
我知道我可以使用iconv 或 PHP 中的其他函数将 ISO-8859-1 字符串转换为另一种字符编码。但是我不知道如何将 ISO-8859-1 字符码(例如 FC16 或 25210)转换为 UTF-8 字符。
当然,我可以有一个关联数组来将所有字符码映射到它们所代表的字符:
$table = array(
0x4B => 'K',
0xFC => 'ü',
// ...
);
实现这一目标的最佳方法是什么?有没有一个 PHP 函数可以做到这一点?
【问题讨论】: