Mysql 我应该设置什么样的校对来使用各种可能的语言?
我有一个名为Mysql 我应该设置什么样的校对来使用各种可能的语言?,mysql,sql,database,collation,Mysql,Sql,Database,Collation,我有一个名为username的列,我希望用户能够插入日文、罗马文、阿拉伯文、韩文以及所有可能的文本,包括特殊字符[,我应该在数据库和表上设置什么COLLATE 我正在使用utf\u general\u ci,我是新来的,所以我不知道这是否是最适合我需要的COLLATE。我需要选择正确的COLLATE以避免sql错误,因为我不会使用preg\u replace或函数来替换特殊字符,我只会使用prepared statement来避免SLQ注入如果您使用的是MySQL 5.5.3或更高版本,我建议您
username
的列,我希望用户能够插入日文、罗马文、阿拉伯文、韩文以及所有可能的文本,包括特殊字符[,我应该在数据库和表上设置什么COLLATE
我正在使用
utf\u general\u ci
,我是新来的,所以我不知道这是否是最适合我需要的COLLATE
。我需要选择正确的COLLATE
以避免sql错误,因为我不会使用preg\u replace
或函数来替换特殊字符,我只会使用prepared statement
来避免SLQ注入如果您使用的是MySQL 5.5.3或更高版本,我建议您使用UTF-8字符编码utf8mb4\u unicode\u ci
。它支持大多数语言(如果不是所有语言的话),并且实现了用于排序和比较的unicode标准。作为第二种选择,请查看一下utf8mb4\u general\u ci
,这可能会更快,但更安全也不太准确
有关更多详细信息,请参阅,或查看
在5.5.3下面,utf8\u unicode\u ci
是你的朋友。- 首选(MySQL 8.0):
utf8mb4\u 0900\u ai\u ci
- 第二选择(从5.6开始):
utf8mb4\u unicode\u 520\u ci
- 第三种选择(5.5+):
utf8mb4\u unicode\u ci
- 在5.5之前,您无法处理所有的中文和表情符号:
utf8\u unicode\u ci
utf8mb4\u danish\u ci
或utf8mb4\u de\u pb\u 0900\u ai\u ci
是最好的
(否则请按照上面列出的“选项”进行操作。)要在MySQL中使用实际的UTF-8,您可以选择在服务器中运行
显示排序规则(如“utf8mb4%”)时显示的任何排序规则。
但一个是字符集,另一个是排序规则。为此,您需要找出首选的排序规则,以及字符比较和排序的高级规则。有趣的是,我将搜索一个关于utf8mb4\u 0900\u ai\u ci
。我的mysql版本是10.1.37
。MariaDB 10.1近似于mysql 5.6,所以对你来说最好的是utf8mb4\u unicode\u 520\u ci
(我刚刚检查了10.1.33。)我有两个问题,1-如何为MySQL版本选择最好的COLLATE
?我做了一些研究,我将使用utf8mb4\u unicode\u 520\u ci
,我将看看它是否好。2-我应该添加setlocale(LC\u TIME,'pt\u BR','pt\u BR.utf-8','pt\u BR.utf-8','葡萄牙语');//ppl说我应该在我的文件上使用我国家的语言
?我认为替换特殊字符可能会有帮助,但我不确定,我几天前刚刚遇到这个函数,实际上我问是否建议使用setLocale()
,我的意思是,如果有一个单词是校对
无法处理的,它会在屏幕上打印出一个sql错误,所以为了避免这个错误setLocale()
可能会有所帮助(我不确定)。但无论如何,这是另一个问题的主题,thanks@user236945896-屏幕渲染是另一个问题。什么操作系统,什么“屏幕”?