PHP - MySQL 数据库中编码错误的土耳其语字符

标签 php html mysql character-encoding turkish

我在一个土耳其语网站上工作,该网站在 MySQL 数据库中存储了许多格式错误的土耳其语字符,例如:

 - ş as þ
 - ı as ý
 - ğ as ð
 - Ý as İ

我无法更改数据库中的数据,因为数据库每天更新,新数据将再次包含格式错误的字符。所以我的想法是改变PHP中的数据而不是改变数据库中的数据。我尝试了一些步骤:

Turkish characters are not displayed correctly

Fix Turkish Charset Issue Html / PHP (iconv?)

PHP Turkish Language displaying issue

PHP MYSQL encoding issue ( Turkish Characters )

我正在使用 PHP-MySQLi-Database-Class在 GitHub 上可用,字符集为 utf8。

我什至尝试用 str_replace 替换格式错误的字符,例如:

$newString = str_replace ( chr ( 253 ), "ı", $newString );

我的问题是,如何在不更改数据库中的字符的情况下解决问题?有什么最佳实践吗?仅替换字符是否是一个好的选择?

编辑: 通过使用

解决了它
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />

最佳答案

2022 年更新。我进行了广泛的研究,发现了这个解决方案并且它正在运行。 假设你的 db_connection 是 $mysqli:

$mysqli = mysqli_connect($hostname, $username, $password, $database) OR DIE ("Baglanti saglanamadi!");

在后面加上这一行。它对所有语言甚至阿拉伯语都有效:

mysqli_set_charset($mysqli, 'utf8');

关于PHP - MySQL 数据库中编码错误的土耳其语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33920875/

相关文章:

php - 使用 POST 创建 HTML 表格

mysql - 如何选择一列日期并使用它来驱动第二个 SELECT 语句?

mysql - 如果条件与第一个表匹配,则从第二个表中选择数据并限制整个数据

php - 使用 cURL 限制下载带宽

php - 图像保留在我的数据库中但不显示在前端

javascript - PHP/Javascript 分块上传 : IE9 corrupt file if filesize is over upload_max_filesize or post_max_size

javascript - Google 字体 API - 文本未显示?

javascript - 对齐 div 内的按钮和按钮之间的跨度

php - 从表中选择,其中列名称与不同表中的数据相同

php - 从三重内连接获得正确的结果