如何规范化编码名称,如ks_c_5601-1987到CP949?

Nid*_*hal 7 php utf-8 mb-convert-encoding

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

按照上面的方法,它意味着在我的代码中维护一个单独的charset映射列表.有没有办法将编码名称规范化为PHP内部支持的名称,从而无需在本地维护任何映射?

bor*_*ble 2

根据支持的字符编码列表,只有少数按代码页明确列出的编码。考虑到这些情况的数量很少 - 虽然没有按照要求进行内置标准化 - 映射列表可能不太不合适。

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

  • CP932 移位_jis
  • CP51932 euc_jp
  • CP50220 iso-2022-jp
  • CP50221 csISO220JP
  • CP50222 iso-2022-jp
  • CP936 GB2312
  • CP950大5

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

  • CP866(IBM866)
  • 全民健康覆盖 (CP949)
  • Windows-1251 (CP1251)
  • Windows-1252 (CP1252)