我已经“inheritance”了一个osCommerce 2.2,PHP4和MySQL4的设置,这使得麻烦。 问题是字符编码。 虽然这些表被定义为包含UTF8但它们实际上包含latin1 。 为了将全新的东西混合在一起,看起来旧的编码器在连接到数据库时,通过设置SET CHARACTER SET 'utf8'手动改变了这个。
现在看起来像这样:
UTF8但实际上包含latin1 。 UTF8 。 ISO-8859-1又名latin1 这个设置一直工作到一个星期前,当提供商改变了一些东西 (他们实际上拒绝接触数据库或任何其他的东西,但他们有服务器问题)。
有问题的部分是德国特殊字符öäüß显示正确,但是当你想插入到数据库的整个osCOmmerce会话中断,只有文本,直到该字符被插入。
Das _ä_ ist ein Umlaut Das _ 当我build立连接时,通过将字符集设置为latin1来更改手动入侵的时候,每个插入都是正常的,但是数据库只传递? 而不是特殊字符。
我不知道如何解决这个问题,如果我将数据库列更改为latin1我失去了所有的特殊字符,如果我改变连接上的编码显示或插入失败。 我完全没有想法。
在更改另一个字符集中的数据时,必须先将其更改为blob,然后再更改为目标字符集(latin1)。 如果你不用mysql会为你做转换,你不会这样做,因为你已经得到了latin1中的数据?
AFAIK当你使用set连接(例如php)设置chatacter自动将表中的所有数据转换为连接的字符集。
不优雅,但通常工作的解决scheme