首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL排序规则

MySQL排序规则
EN

Stack Overflow用户
提问于 2011-09-10 03:47:51
回答 4查看 4.7K关注 0票数 3

我在PHP和MySQL上开发时遇到了一个非常奇怪的问题。我在4-5年前就有过这样的问题,但从那以后就没有了。真的不记得我是怎么解决这个问题的。

好吧..。问题:我有一个排序规则为utf_unicode_ci的数据库,但是当我在数据库中插入格鲁吉亚字母:სახელიდაგვარი时,我得到了áƒ>იხდიáƒ<- this symbols。问题会是什么呢?如何解决这个问题?

有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-17 04:14:14

根据Eray的回答,我意识到应该在排序规则中设置utf8_general_ci,而不是utf8_unicode_ci

并且除了使用mysql_set_charset('utf8',$connection)函数之外。

示例如下:

代码语言:javascript
复制
        $connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
    mysql_set_charset('utf8',$connection);      
    if (!$connection) {
        die("Database connection failed: " . mysql_error());
    } else {
        $db_select = mysql_select_db(DB_NAME, $connection);
        if (!$db_select) {
            die("Database selection failed: " . mysql_error());
        }
    }
}

因此,让mysql_set_charset在第二行解决了我的问题。

希望它能帮助任何人..

票数 3
EN

Stack Overflow用户

发布于 2011-09-10 03:49:07

你可以试试utf8_general_ci而不是这个吗?它会解决你的问题。

但别忘了,*databases* and *tables* collation must be utf8_general_ci

票数 2
EN

Stack Overflow用户

发布于 2011-09-10 03:52:44

确保您使用的字符串类型的前缀为N (NCHAR,NVARCHAR)。

在添加数据时,不要忘记将N添加到要传递给数据库的参数中。例如:

INSERT INTO table VALUES (N'Georgian Letters', N'Georgian Letters', ...)

N前缀将告诉sql它后面的字符串是unicode字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7366711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档