【问题标题】:Can't Show Turkish Characters When Getting Column Names获取列名时无法显示土耳其语字符
【发布时间】: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


【解决方案1】:

使用header修改HTTP头:

<?php
header('Content-Type: text/html; charset=utf-8');

或者:

header('Content-Type: text/html; charset=ISO-8859-9');

【讨论】:

  • 使用第二个后,我可以看到 ü,ö 但看不到 ı,ğ。然后我意识到它破坏了每一个只有土耳其语的角色。
  • &lt;meta http-equiv='Content-Type' content='text/HTML; charset=iso-8859-9' /&gt;
猜你喜欢
  • 1970-01-01
  • 2015-07-30
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多