2013-07-27 82 views
2

我有一个MySQL数据库备份。而这个备份整理是UTF8,通用词。这是从技术的备份。转换特殊字符从数据库到普通字符

下面是从数据库中的文章的句子:

贸易中心是一个 müthiþ平台,让你做你的交易。用互联网与提供该贸易商 交易平台olanaðý不巴迪亚。出于某种原因无法自行 网站,交易商可能会引入自己的产品,仍然能够有很多商贩在这里聊天 。

通过这个系统将建立经销商和客户 贸易之间的结合将更加kolaylaþ。

我的HTML代码就是这样

<html lang="tr"> 
<head> 
<meta charset="utf8"> 
</head> 
</html> 

如果我不使用LANG = 'EN' 和charset = “UTF-8”。我的信息变成这个

贸易中心是一个 您的交易平台yapmanã½zã½管理员落雁mã¼thiã¾。他们不是tã¼cc咩°½ Windows XP平台,在这个olanaã°½°lanmã½ã¾tã½管理员互联网来做生意。他们tã¼cc dolayã½自己的ã¼rã¼n该网站可能在这里无法bazã½ tanã½t,仍然能够在这里聊天是çOktã¼cc原因。由于这一系统

arasã½n建立一个çOksatã½cã½和mã¼ã¾ter贸易将更加kolaylaã¾咩°。

但LANG = 'EN' 和charset = “UTF-8” 未进行转换的一切。

其实,我有这个问题,没有问题。但是,这文章一样,保存到数据库中。如何转换THES

的人物?我不想使用str_replace函数。

光=> I,D => G,TH =>工作等

我的数据库连接部分

public function __construct() { 
    $this->db_connection = mysql_connect($this->_server, $this->_dbuser, $this->_dbpassword) OR die ("Veritabanı Sunucusuna Bağlanılamadı!" . mysql_error()); 
    mysql_query('SET NAMES utf8'); 
    mysql_query('SET CHARACTER_SET utf8'); 
    mysql_query("SET COLLATION_CONNECTION = 'utf-8'"); 

    mysql_select_db($this->_db) or die("Veritabanı Bulunamadı" . mysql_error()); 
} 
+0

你在寻找卫生处理吗? 'htmlentities()'? – Nick

+0

当您保存数据时,您的数据库连接需要使用'SET NAMES'utf-8'',我相信 – DevZer0

+0

我添加了数据库连接部分。我已经使用集名 – cihanblog

回答

0

正如我已经做了很多与“非İngilizce”字,都需要适当显示这些字符的存储几件事情。

没有特定的顺序(因为我不知道什么字符集是最适合于波斯,我将使用UTF-8,如果是不同的,你只需要使用一个你需要的):

告诉你浏览器:您所使用的字符集,通过设置从PHP header('Content-type: text/html; charset=utf-8');他设定的meta标签在HTML像这样适当的标题:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

在数据库中,以避免列/表中混合使用不同的排序规则和字符集。我总是将数据库,表格和列设置为utf8_general_ci,这符合我需要的所有时间(语言,如英语,德语,塞尔维亚语,匈牙利语......)。

正如Jan所说,阅读http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html在连接到数据库后,您很可能需要执行类似SET NAMES utf8的查询。

所有这些都应确保正确显示unicode字符。但是,还有一件事可以覆盖所有这些 - Web服务器。 Apache(不知道其他服务器)有一个AddDefaultCharset指令。在大多数设置中,这保留为关,但我确实遇到了默认字符集设置为latin1的设置,因此覆盖了我所有的字符集设置。如果设置了该值,则将其设置在httpd.conf(或类似的配置文件)中。如果您有权访问它,我建议将其设置为关闭。如果你不这样做,那么你可以使用放在你的webroot中的.htaccess替代全局值,如下所示:AddDefaultCharset utf-8

+0

没有任何改变。因为这个数据被保存到数据库中,当我查询phpmyadmin时,我可以看到这些字符,但是当我打开vbulletin论坛时。一切正常。有转换。但我不知道我该怎么做? – cihanblog

1

我遇到过这样的问题。我认为首先你需要确保你用来查看从数据库中提取的文章的控制台或编辑器使用'utf-8'格式。我的意思是这个问题可能由控制台造成,而不是由数据库本身造成。

+0

+1非常好点 – DevZer0

+0

+2非常好点... –

+0

我知道这个话题。我已经检查过了。 “file -i index.php index.php:text/x-C++; charset = utf-8” – cihanblog