PHP,将UTF-8转换为ASCII 8位

9

我正在尝试使用iconv函数将一个UTF-8编码的字符串转换为ASCII 8位编码。该字符串将被导入到会计软件中(根据SIE标准解析的一些基本指令)。

我现在运行的代码:

iconv("UTF-8", "ASCII", $this->_output)

这适用于会计软件#1,但软件#2抱怨编码。标准指定的编码是:IBM PC 8位扩展ASCII(代码页437)。我的问题是,PHP将我的字符串编码成哪个版本的ASCII,如果不是指定的版本,我如何按照标准规范对字符串进行编码?

字符串中有哪些字符?如果只有前128个代码点的字符,则UTF-8已经与ASCII相同。如果还有其他字符,则您正在丢弃大量信息/字符。 - deceze
这是一个兼容性问题。导入软件将遵循SIE标准,因此仅接受ASCII扩展。 - Daniel
1个回答

14

尝试这个针对软件#2的方法

iconv("UTF-8", "CP437", $this->_output);

扩展ASCII并不等同于普通ASCII。 第一个可能接受ASCII,但第二个软件需要扩展ASCII - 代码页437。

查看此链接


谢谢,软件 #2 不再提示有关编码的问题。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接