【问题标题】:Why iconv function return empty value if php variable contain quotes?如果 php 变量包含引号,为什么 iconv 函数返回空值?
【发布时间】:2016-03-24 22:09:19
【问题描述】:

我尝试使用 iconv 函数将字符编码格式 tis-620 更改为 unicode。 tis-t620 是泰语字符编码格式。使用 iconv 函数的原因是 json_encode 只能以 unicode 格式工作。 这是我的代码。

        $sql = "SELECT id,name FROM my_tbl WHERE id='$id'";
        $query = mysql_query($sql);
        while($row = mysql_fetch_array($query)){
            $name= $row['name'];
            $id = $row['id'];
        }
        $arr['name'] = iconv("tis-620","utf-8",$name);
        $arr['id'] = $id;
        echo json_encode($arr);

此代码正常工作。但是如果name 包含像“ทดสอบ” 这样的泰语写的双引号,它返回空值。我不知道为什么。我非常感谢任何建议。

【问题讨论】:

  • 如果您需要从数据库中获取 UTF-8 格式的数据,通常将数据库连接设置为utf8 更有意义,这样数据库就会为您进行转换。 – 除非你以某种方式错误地处理编码开始并且它已经以某种奇怪的形式存储在数据库中......

标签: php iconv


【解决方案1】:

试试http://php.net/manual/de/function.mb-convert-encoding.php

$sql = "SELECT id,name FROM my_tbl WHERE id='$id'";
$query = mysql_query($sql);
while($row = mysql_fetch_array($query)){
  $name= $row['name'];
  $id = $row['id'];
}
$arr['name'] = mb_convert_encoding($name, "tis-620","utf-8");
$arr['id'] = $id;
echo json_encode($arr);

【讨论】:

    猜你喜欢
    • 2014-10-09
    • 2020-06-21
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多