1

我对瑞典语字符(与英文字母不同的字符)以及它们如何插入数据库有疑问。

我使用 osCommerce,iso-8859-1在管理页面和目录页面中都设置为字符集。如果我SHOW VARIABLES;character_set数据库中运行latin1.

还有一些来自 phpinfo 的服务器设置:

iconv.input_encoding ISO-8859-1

iconv.internal_encoding ISO-8859-1

iconv.output_encoding ISO-8859-1

根据主机支持页面ApacheUTF-8默认交付所有页面,可以通过添加来更改

AddDefaultCharset ISO-8859-1

在一个.htaccess文件中。

当我去管理员更新产品时,不同输入字段中的所有字符都从数据库中提取并按预期显示。但是当我更新产品时,所有特殊字符都会像这样转换:

  • å 变成 Ã¥
  • ä 变成 ä
  • ö 变成 ö

如果我添加新产品,也会发生同样的情况。

当我使用 phpmyadmin 查看数据库时,会显示“损坏”字符,因此不仅仅是网页翻译错误。

我的主人最近宣布他们将为 php 做一些更新,所以我认为这与这次更新有关。几天前一切正常。

我不确定我的 previos php 版本,但现在我有 5.2.17 而 mysql 是 4.0.27-standard

有人可以在这件事上帮助我并告诉我我需要做什么。

有没有一个简单的解决方案,我需要将数据库和网页转换为 utf-8 还是需要做其他任何事情?

4

1 回答 1

1

听起来网络浏览器正在以 UTF-8 而不是 ISO-8859-1 发送表单。或者应用程序(或 MySQL 客户端)在将文本写入数据库之前将其转换为 UTF-8。您可以$text通过执行简单的echo bin2hex($text);.

accept-charset如果问题出在浏览器上,请在表单标签中设置用于发送表单的字符编码。那是:

<form action="..." method="POST" accept-charset="ISO-8859-1">
    ....
</form>
于 2012-04-12T10:01:24.140 回答