我在一个土耳其语网站上工作,该网站在 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/