如何将MySQL中不可读的utf8字符转换为可读的

时间:2015-05-22 14:01:47

标签: php mysql

我有像这种格式存储在mysql中的阿拉伯语文本

شقق جديده غبر مسكونه 220 متر..
.150متر..طبربور ..ااسكانات قموم 
والنجار للاستÙسار 

它采用这种格式,因为在从HTML文本框中将数据插入数据库之前我没有使用下面的内容:

mysql_query('SET CHARACTER SET utf8');

我现在的问题是,如何将文本转换为MySQL列,使其成为可读文本:

شقق جديده غبر مسكونه 220 متر ..150متر..طبربور ..ااسكانات قموم والنجار للاستفسار 

我尝试了下面的一个列单元格来检查,但它不起作用:

mysql_query('SET CHARACTER SET utf8');

$sql  = 'SELECT content FROM messages WHERE id=500';
$qry = mysql_query($sql);
$result =mysql_fetch_object($qry);

$text= $result->content;

mysql_query('SET CHARACTER SET utf8');

$sql  ='UPDATE messages SET content= "'.$text.'" where id=500';
mysql_query($sql);

注意:如果我使用以下

mysql_query('SET CHARACTER SET utf8');

在我从HTML textarea将数据插入数据库之前,它适用于存储和读取,但我需要将已输入的数据转换为表格。

感谢。

简单的解决方案可以通过3个简单的步骤完成:

一个。通过以下命令将数据库排序规则更改为utf8:

ALTER DATABASE <db_name> CHARACTER SET utf8 COLLATE utf8_general_ci;

我想要更改的表格单元格已经整理了utf8_general_ci

B中。实现此查询以更改内容:

update messages set content=CONVERT(BINARY CONVERT(content USING latin1) USING utf8);

℃。在连接到DB之前添加以下内容:

mysql_query('SET CHARACTER SET utf8');

你完成了!谢谢大家

1 个答案:

答案 0 :(得分:1)

使用ALTER DATABASEALTER TABLE命令。

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Source