我不确定何时第一次出现。数据库文本中的奇怪字符:Ã,Ã,¢,â€,
我有一个新的drop-shipping会员网站,并从批发商处收到产品目录的出口副本。我格式化并导入到Prestashop 1.4.4中。
网站的前端包含奇怪的字符组合产品文本中:A,A,¢,Ⅰ,等它们出现在的地方像普通字符, - :等
这些字符出现在大约40%的数据库表中,而不仅仅是产品特定的表,如ps_product_lang。
Another website thread说当数据库连接字符串使用不正确的字符编码类型时,会发生同样的问题。
在/config/setting.inc中,没有提到字符编码字符串,只是MySQL引擎,它被设置为InnoDB,它与我在PHPMyAdmin中看到的匹配。
我导出了ps_product_lang,用正确的字符替换了这些字符的所有实例,以UTF-8格式保存了CSV文件,并使用PHPMyAdmin重新导入了它们,指定UTF-8作为语言。
但是,在PHPMyAdmin中进行新的搜索之后,我现在在ps_product_lang中的这些坏字符的实例数量是我开始使用的大约10倍。
如果问题与在数据库连接字符串中指定正确的语言属性一样简单,那么/如何设置此值以及该值是什么?
顺便说一句,我试图运行在phpMyAdmin此命令在this thread提及,但问题依然存在:
SET NAMES utf8
UPDATE:PHPMyAdmin的说:
MySQL的字符集:UTF-8的Unicode (utf8)
这是我在最后一个导入文件中使用的相同字符集,导致了更多的字符损坏。在导入过程中,UTF-8被指定为导入文件的字符集。
UPDATE2
这里有一个例子:
人是真正的生活untetheredÃÆ'Ã,¢Ã¢ââ,¬Å¡Ã,¬Ã¯ââ , **在线购买和租借电影,下载软件和 在网络上共享和存储文件。
UPDATE3
我跑在phpMyAdmin SQL命令以显示字符集:
- character_set_client字符UTF8
- 是character_set_connection UTF8
- character_set_database LATIN1
- character_set_filesystem二进制 个
- character_set_results UTF8
- 被character_set_server LATIN1
- character_set_system UTF8
所以,也许我的数据库需要转换(或删除并重新创建)为UTF-8。如果MySQL服务器是latin1,这可能会造成问题吗?
MySQL可以处理服务内容翻译为UTF8但将其存储为latin1吗?我不认为它可以,因为UTF8是latin1的超集。我的网站托管支持未在48小时内回复。对他们来说可能太难了。
@AurelioDeRosa添加上面的示例。 – Steve
我不太了解prestashop,但似乎并没有做好char编码。无论如何,我看到其他人也有同样的问题:http://www.prestashop.com/forums/topic/34545-problem-with-encoding-characters/ –
是不是这只是一个有限元问题? phpMyAdmin设置为显示错误编码的东西,而客户端未设置为使用UTF-8?需要位于元标记中。 – MarianP