2012-08-07 101 views
4

我试图通过使用iconv函数将字符串从UTF-8转换为ASCII 8位。该字符串意味着被导入到会计软件中(一些基本指令根据SIE标准进行了解析)。PHP,将UTF-8转换为ASCII 8位

什么我现在运行:

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

这适用于会计软件#1,但软件#2抱怨的编码。由标准指定的编码是:IBM PC 8-bit extended ASCII (Codepage 437)

我的问题是,什么版本的ASCII是PHP编码我的字符串,如果不是指定 - 我如何编码字符串相应的标准规范?

+0

什么样的字符在字符串中?如果只有前128个码位的字符,那么UTF-8已经与ASCII相同。那里还有其他角色,那么你会丢弃大量的信息/角色。 – deceze 2012-08-07 09:58:07

+0

这是一个兼容性问题。导入软件将遵循SIE标准,因此只接受ASCII扩展。 – Daniel 2012-08-07 11:31:23

回答

8

尝试一下本作的软件#2

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

扩展ASCII是不一样的纯ASCII。 第一个可能接受ASCII,但第二个软件需要扩展ASCII - 代码页437

看到这个link

+0

谢谢,软件#2不再警告编码。 – Daniel 2012-08-07 11:26:50

+0

此外,一些导入软件需要换行换行。这不是SIE标准所要求的 - 但要确保导出是兼容的,对新线路使用“\ r \ n”。 – Daniel 2012-10-10 17:40:03

+0

你是上帝 – OZZIE 2013-01-09 09:57:54