我有一个 mysql 数据库,用希腊字符存储一些字段。在我的 html 中,我有 charset=utf-8 并且我的数据库列是用编码 utf_general_ci 定义的。但到目前为止我还没有设置连接编码。结果,我的数据库无法很好地显示希腊字符,但是当用 PHP 读回时,一切都显示良好。
现在我尝试以正确的方式做到这一点,所以我也在我的数据库函数中添加了。
$mysqli->set_charset("utf8");
这对新条目非常有效。
但对于现有条目,问题是当我在 PHP 中读取数据时,它会出现乱码,因为现在连接编码已更改。
有没有办法修复我的数据并使它们再次有用?我可以继续我以前的工作方式,但我知道这是错误的,并且会在未来给我带来更多问题。
最佳答案
我解决了这个问题如下:
- 在 PHP 脚本中,像我现在一样检索信息,即不设置连接。通过这种方式,错误将被反转和更正,并且在您的 php 文件中,您将拥有正确的 utf-8 格式的字符。
- 在同一个 PHP 脚本中,将连接设置为 utf-8 写回信息 此时正确的字符在数据库中
- 我更改了您网站的所有读/写功能,从现在开始使用 utf-8
关于PHP mysql 固定连接到 utf8,但现在现有的希腊语数据无用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16395655/