PHP mysql 固定连接到 utf8,但现在现有的希腊语数据无用

标签 php mysql character-encoding

我有一个 mysql 数据库,用希腊字符存储一些字段。在我的 html 中,我有 charset=utf-8 并且我的数据库列是用编码 utf_general_ci 定义的。但到目前为止我还没有设置连接编码。结果,我的数据库无法很好地显示希腊字符,但是当用 PHP 读回时,一切都显示良好。

现在我尝试以正确的方式做到这一点,所以我也在我的数据库函数中添加了。

     $mysqli->set_charset("utf8");

这对新条目非常有效。

但对于现有条目,问题是当我在 PHP 中读取数据时,它会出现乱码,因为现在连接编码已更改。

有没有办法修复我的数据并使它们再次有用?我可以继续我以前的工作方式,但我知道这是错误的,并且会在未来给我带来更多问题。

最佳答案

我解决了这个问题如下:

  1. 在 PHP 脚本中,像我现在一样检索信息,即不设置连接。通过这种方式,错误将被反转和更正,并且在您的 php 文件中,您将拥有正确的 utf-8 格式的字符。
  2. 在同一个 PHP 脚本中,将连接设置为 utf-8 写回信息 此时正确的字符在数据库中
  3. 我更改了您网站的所有读/写功能,从现在开始使用 utf-8

关于PHP mysql 固定连接到 utf8,但现在现有的希腊语数据无用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16395655/

相关文章:

php - FOR LOOP - 需要一些有效的帮助

php - 存在 Codeigniter 子查询

php - WHERE之后可以在Mysql查询中使用变量吗

MySql varchar 从 Latin1 更改为 UTF8

character-encoding - 如何在 SublimeText2 中有效地设置项目默认编码?

php - CodeIgniter如果用户名存在则通过用户名获取用户信息,如果不存在则通过userID获取

php - 删除mysql中的日期字符串

php - 获取逗号分隔字符串的第一个值

mysql - 如何使用 MySQL GUI 工具将字段设为 NULL?

java - Spring MVC 响应编码问题