【发布时间】:2013-07-23 15:32:25
【问题描述】:
我正在尝试获取带有土耳其字符的列名。这是代码。
$cekelim=mysql_query("SELECT * FROM kategori");
$sayisi=mysql_num_fields($cekelim);
for($i=0;$i<$sayisi;$i++){
$listeleyelim=mysql_field_name($cekelim,$i);
echo $listeleyelim."<br>";
}
我在php文件的开头使用了这些代码
mb_internal_encoding('UTF-8');
mysql_query('SET NAMES UTF8');
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'");
我也用过
<meta http-equiv='Content-Type' content='text/HTML; charset=utf-8' />
在 html 中的 head 标签之间。
编辑1:
添加
header('Content-Type: text/html; charset=ISO-8859-9');
修复了 ü 和 ö,但不适用于仅土耳其语字符。
编辑2:
我用数字代码(例如 ç)替换了所有土耳其语字符,并且在输入新列时我用数字代码替换了所有土耳其语字符。这不是我正在寻找的确切方式,但这种替代方式效果很好。
【问题讨论】:
-
什么是列排序规则?设置 utf8_general_ci
-
很遗憾没有工作。
-
你能告诉我们问题是什么吗?你说你想要什么,但你没有解释你遇到的问题。我在您的代码中没有发现任何问题。
-
问题是我将 ü,ö 替换为 �,而 İ,ı,ç,ş,ğ 替换为 ?。我认为问题的标题很清楚,可以理解。这是大多数程序员面临的典型性格问题。
-
这可能是其他人指出的 HTML 页面的编码(即字符集)问题。如果您在 UTF-8 中创建 PHP 连接,那么不仅将您的文件作为 UTF-8 提供,而且确保文件本身是这样编码的。
标签: php mysql encoding character