php - 使用 PHP 从 MySQL 读取 Unicode 字符

标签 php mysql string unicode utf-8

我继承了一个 MySQL 数据库,其中包含名为“描述”的字段,类型为文本,排序规则为 latin1_swedish_ci

该字段的问题是它包含带有一些 Unicode 字符的 utf-8 数据,例如字符 733 等。有时,此字符也存在于以 HTML 编码的“˝”表示的字段中。

我正在尝试读取表格并将数据导出到 CSV 文件,我需要将此字符表示为双引号。

读取 HTML 编码字符非常容易。然而,在我可以用它做任何事情之前,实际的 Unicode 字符似乎已转换为 utf-8,从而产生“?”。

如何读取 Unicode 字符 733 (U+02DD)、识别它并转换它?

这是代码的简化(未经测试)版本。

<?
$testconn=odbc_connect ("TESTLIB", "......", "......");

$query="SELECT Description FROM TestTable";

$rsWeb=mysql_query($query));

$WebRow=mysql_fetch_row($rsWeb));
$Desc = $WebRow[0];
$Desc = str_replace('"','""',$Desc);

fwrite($output,"\"".$Desc."\",\r\n");
%>

最佳答案

连接 SQL Server 时将字符集设置为 utf-8:

http://php.net/manual/en/mysqli.set-charset.php

$mysqli->set_charset("utf8");

关于php - 使用 PHP 从 MySQL 读取 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8882112/

相关文章:

php - 从 PHP-CPP 的 Php::Value 中检索类名

javascript - 将数据从 Laravel Controller 传递到 Js

php - 使用 Codeigniter 将选定的复选框从数组数据传递到数据库

MySQL - 在 SELECT 中使用 'AS var_name'

php - 使用不同的数据库表 ID 重复 div 宽度

在c中的特殊运算符之前/之后复制字符

java - 在java中取字符串的一部分

php - 拉取在另一个表 codeigniter 中不可用的记录

mysql - 当前SQL语句是否有MySQL变量?

java - 如何替换字符串中的括号