7

我正在从邮件服务器获取电子邮件并将消息转换为 UTF-8 字符集并将其保存在 DB 中。要转换字符集,我正在使用 mb_convert_encoding 但它无法转换 gb2312ks_c_5601-1987. 在谷歌搜索时,我发现gb2312我可以使用CP936and for ks_c_5601-1987use而不是CP949.

采用上述方法意味着在我的代码中维护一个单独的字符集映射列表。有没有办法将编码名称规范化为 PHP 内部支持的名称,从而消除在本地维护任何映射的需要?

4

1 回答 1

2

根据支持的字符编码列表,只有少量的编码由代码页明确列出。鉴于这些情况的数量很少 - 虽然不是所要求的内置规范化 - 映射列表可能并不太合适。

相关的似乎如下(右侧的小写名称是您需要转换的名称):

  • CP932 shift_jis
  • CP51932 euc_jp
  • CP50220 iso-2022-jp
  • CP50221 cISO220JP
  • CP50222 iso-2022-jp
  • CP936 国标2312
  • CP950 大5

PHP 文档上的代码页也列出了以下内容,但似乎已经有了合适的同义词:

  • CP866 (IBM866)
  • UHC (CP949)
  • Windows-1251 (CP1251)
  • Windows-1252 (CP1252)
于 2012-12-10T14:03:38.803 回答