当前位置: 首页 > 知识库问答 >
问题:

连接字符串中的字符编码是否设置值的存储方式?

段干靖
2023-03-14

我要将数据库的编码从latin1更改为utf8mb4。由于隐私限制,我不知道要转换的数据库包含什么。我担心在SQL下面运行,现有数据可能会被更改。

ALTER TABLE TABLE转换为字符集utf8 COLLATE utf8\u general\u ci

但是,grails应用程序的连接字符串包含useUnicode=true

由于该值是UTF-8编码的,因此数据不会受到从latin1到utf8mb4的更改的影响?

+--------------------------+-------------------+
| Variable_name            | Value             |
+--------------------------+-------------------+
| character_set_client     | utf8              |
| character_set_connection | utf8              |
| character_set_database   | latin1            |
| character_set_filesystem | binary            |
| character_set_results    | utf8              |
| character_set_server     | latin1            |
| character_set_system     | utf8              |
| collation_connection     | utf8_general_ci   |
| collation_database       | latin1_swedish_ci |
| collation_server         | latin1_swedish_ci |
+--------------------------+-------------------+```

共有1个答案

贺飞星
2023-03-14
匿名用户

那是πα?这是UTF-8(外界称之为)、utf8mb4(MySQL的等效版本)或utf8(MySQL部分实现UTF-8)中的解释。

它在latin1中不能正常工作。

客户端中的编码和数据库中列的编码不必相同。然而,客户端中的希腊语不能塞进表中的latin1中,因此出现了错误消息

什么ALTER TABLE TABLE转换为字符集utf8 COLLATE utf8\u general\u ci的作用是将该表中的所有文本列更改为utf8编码,并从当前使用的任何编码(大概是拉丁语1)转换。这适用于西欧字符,所有这些字符(使用不同的编码)都有拉丁文1和utf8。

要处理表情符号和一些中文,您最好选择utf8mb4

ALTER TABLE table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_unicode_520_ci;

 类似资料:
  • 问题内容: 假设我有两个陈述。 哪个是堆栈内存,哪个存储在堆中? 两者之间有什么区别? 创建了多少个对象,内存中的引用如何? 最佳做法是什么? 问题答案: 所有对象都存储在堆中(包括其字段的值)。1个 局部变量(包括参数)始终包含原始值或引用,并存储在堆栈中。1个 因此,对于您的两行: 您将在堆上有两个对象(两个包含的String对象)和两个引用(每个对象一个)在堆栈上(提供且是局部变量)。 (实

  • 本文向大家介绍MySQL字符编码设置方法,包括了MySQL字符编码设置方法的使用技巧和注意事项,需要的朋友参考一下 通过show variables like 'character_set%%';查看编码 修改mysql的编码方式可以有以下几个: 1.通过配置文件修改my.ini(windows下)或/etc/my.cnf(linux下) 分别添加如下内容 2.创建数据库时设置编码 create

  • 我使用ServiceBustigger创建了一个Azure Function应用程序(监听主题订阅)。很好。但是现在我试图制作一个QueueTrigger来监听一个简单的队列,但是我得到了以下错误。 我也是这样做的。我在Visual Studio中创建了一个新项目,并将其指向我在Azure上的存储帐户。指定了队列名称。队列存在。我尝试创建一个新的共享访问策略。已将连接字符串复制到本地。设置。jso

  • 问题内容: 我想在CSS中实现以下目标。我该如何在IE8 +中运行 问题答案: 您无法按照建议的方式进行动态字符串插值,但是如果属性的可能值数量有限,则可以为每个属性创建样式: 如果类型数量不合理,那么您可能需要提出一个比我这里列出的更好的解决方案。

  • 问题内容: 我有一张表,看起来有点像这个演员(名字,姓氏,stage_name); 我想更新stage_name以使其具有默认值 以便 会产生记录 这可能吗? 谢谢 :) 问题答案: MySQL在列定义选项中不支持计算列或表达式。 您可以在触发器中执行此操作(需要MySQL 5.0或更高版本): 您可能还想创建一个类似的触发器。 请注意姓氏和姓氏,因为a与任何其他字符串的连接会产生a 。使用每列或

  • 我有一个Base64编码的字符串(这是AES加密的字符串)。我正试图将它存储在Firebase存储,然后从它下载。 我尝试过多种选择,例如 这不会在存储中保留base64字符串,而是将其转换为整数。我还尝试提供{contenttype:“application/base64”},但是putString似乎不起作用。 我只是在寻找一个非常简单的base64编码字符串到firebase存储的上传和下载