我有一组红宝石脚本可以访问我的MySQL数据库。我需要修改这个数据库的字符集,特别是将表从Latin1更改为UTF8。我真的需要修改我的脚本吗?我已经看过了,我看到我可以设置一个连接的字符集,这是强制性的吗?
我犹豫不决地认为,我不需要做任何调整,这就是今天数据库的设置。查看字符集是如何设置的:
mysql> SHOW VARIABLES LIKE "%char%"; +--------------------------+-------------------------------------------+ | Variable_name | V
我的数据库(MySql)有一个utf8_general排序规则。我正在访问数据库中的数据,并显示了一个网页(用Perl开发),它显示了瑞典字符(ä,§,ö)与不同的字符。我检查了Mysql数据库,在那里我可以看到数据中有ä,the,ö字符。似乎,在访问数据时存在编码问题。在连接到数据库时,使用以下代码
my($dbh) = DBI->connect($config{'dbDriver'},$config{'dbUser'},$config{'dbPass'}) or die "Kunde inte ansluta till $con
我正在Visual 2012中用C++编写一个MFC应用程序。App连接到MySQL数据库,并将每一行显示到列表框中。单词为俄文,数据库编码为cp1251。我使用以下代码设置了相同的字符集:
if (!mysql_set_character_set(mysql, "cp1251")) {
statusBox.SetWindowText((CString)"CP1251 is set for MYSQL.");
}
但这根本帮不上忙。我使用以下代码显示数据:
while ((row = mysql_fetch_row(result)) != NULL) {
首先,感谢读这篇文章的人。我在MySQL数据库中的字符编码有一个非常奇怪的问题,我正在使用PDO进行接口。这些表都是用UTF8编码的,webapp使用utf-8,但似乎存储在数据库中的数据实际上不是utf-8,而是拉丁文-1。
事情已经进行了很长一段时间,但当导入utf-8编码的数据文件或执行包含"é“或”as“等特殊字符的全文搜索时,都会出现问题。
编辑
一些答复指出,这是我的终端机的一个问题。不是:
foreach($dbh->query("SELECT c FROM t") as $row){
echo $row['c'] ."