如果php变量包含引号,为什么iconv函数返回空值?

如果php变量包含引号,为什么iconv函数返回空值?,php,iconv,Php,Iconv,我尝试使用iconv函数将字符编码格式tis-620更改为unicode。tis-t620是泰语字符编码格式。使用iconv函数的原因是json_仅以unicode格式编码。 这是我的密码 $sql = "SELECT id,name FROM my_tbl WHERE id='$id'"; $query = mysql_query($sql); while($row = mysql_fetch_array($query)){

我尝试使用iconv函数将字符编码格式tis-620更改为unicode。tis-t620是泰语字符编码格式。使用iconv函数的原因是json_仅以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);
此代码正常工作。但如果名称包含用泰语写的双引号,则如下“ทดสอบ”, 它返回空值。我不知道为什么。我非常感激任何建议。

试试看


如果您需要从数据库中获取UTF-8格式的数据,通常将数据库连接设置为utf8更有意义,这样数据库将为您进行转换。-除非您一开始就错误地处理了编码,并且它已经以某种奇怪的形式存储在数据库中。。。
$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);