首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Hadoop数据仓库

    MySQL 8 批量修改字符集脚本

    从低版本迁移到MySQL 8后,可能由于字符集问题出现 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900 _ai_ci,IMPLICIT) 错误,此时要修改对象的字符集。 批量修改库字符集 change_database_characset.sql select concat('alter database ',schema_name,' default character 批量修改表字符集 change_table_characset.sql select concat('alter table ',table_schema,'.' 批量修改列字符集 change_column_characset.sql set group_concat_max_len=10240; select concat(c1,c2,';') from

    2.9K20编辑于 2023-01-14
  • 来自专栏WordPress果酱

    WordPress 如何使用 UTF-8 字符集

    现在网站的字符集已经默认使用 UTF-8,WordPress 也是,原来我们可以在 WordPress 后台设置网站的编码模式,但是 WordPress 从 3.5.1 版本开始,取消了后台这个设置,现在只能默认为 UTF-8 字符集。 而_canonical_charset则把获取字符集转成统一的名称,UTF-8 或者 ISO-8859-1。 如果我们 WordPress 网站的字符集已经确定就是 UTF-8,没有必要使用这两个函数过滤,通过下面这段代码直接返回就好: add_filter('pre_option_blog_charset', function (){ return 'UTF-8'; }); ----

    80820编辑于 2023-04-15
  • 来自专栏MySQL解决方案工程师

    MySQL8——带有字符集的UDF

    MySQL UDF框架在最初设计时,没有考虑字符串参数和返回值的字符集。这意味着UDF的参数和返回值将会使用“二进制”字符集。即使用户定义了字符集,服务器返回的字符串,也会忽略该字符集。 一列具有字符集“ utf8mb4”,另一列具有字符集“ latin1”。该表有一个记录。每列中存储的字符串相同。当然,根据它们各自的字符集,两个字符串的编码是不同的。 现在,UDF希望使用latin1字符集中的两个参数,并返回utf8mb4字符集的连接字符串。这是先前UDF的修改版本。 ? ? ? 让我们在与之前相同的表上再次执行UDF。 请注意,我们以utf8mb4编码传递了第一个参数,并以latin1传递了第二个参数。UDF能够处理两个参数的字符集。它将连接的字符串作为格式正确的“ utf8mb4”编码的字符串返回。 ? 在前面显示的convert()方法中,现有的“ mysql_string_converter”组件服务将字符串从字符集(latin1)转换为另一个字符集(utf8mb4)。 此方法是可选项。

    2.1K20发布于 2020-09-28
  • 来自专栏房东的猫

    MySQL字符集utf8mb4

    简介 Unicode是编码字符集,而UTF-8就是字符编码,即Unicode规则字库的一种实现形式。随着互联网的发展,对同一字库集的要求越来越迫切,Unicode标准也就自然而然的出现。 而UTF-8则只实现了第一个Plane,可见UTF-8虽然是一个当今接受度最广的字符集编码,但是它并没有涵盖整个Unicode的字库,这也造成了它在某些场景下对于特殊字符的处理困难 ASCII--->GB2312 ,可以给整个主机做快照 升级 utf8mb4是MySQL5.5.3版本之后支持的字符集,所以,如果你需要使用这个字符集,前提条件是你的MySQL版本必须 >= 5.5.3 修改 在MySQL中,可以为一个 utf8mb4,但是实际只是修改了database新创建的表,默认使用utf8mb4,原来已经存在的表,字符集并没有跟着改变,需要手动为每张表设置字符集 修改table的字符集 只修改表默认的字符集 ALTER TABLE table_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 修改表默认的字符集和所有字符列的字符集 ALTER

    2K31发布于 2021-07-23
  • 来自专栏开源部署

    MySQL字符集utf8和utf-8的关系

    什么是字符集(character set) 字符的二进制编码方式 二进制编码到一套字符的映射 二进制->编码->字符 校对规则(collation) 在字符集内用于比较字符的一套规则 ASCII码 1 中实现了UTF-8编码的unicode 字符集 MySQL中utf8是utf8mb3的别名 utf8中,一个符号使用1~3个节点表示 对UTF-8支持不彻底,可采用utf8mb4字符集 utf8与utf8mb4 的关系 都是实现了UTF-8编码的unicode 字符集 utf8仅支持基本多语言平面Basic Multilingual Plane (BMP) utf8mb4支持BMP之外的补充字符(如emoji, 191个字符建立索引 超集 字符集A,B ,B支持的所有字符A都支持,A 是B超集 比如 GBK字符集是GB2312字符集的超集,它们又都是ASCII字符集的超集 utf8mb4是utf8的超集 字符集设置 character-set-server 设置[mysqld] 进程的默认字符集 collation-server 设置[mysqld] 进程的默认校对规则 utf8_general_ci 查找、排序不区分大小写

    1.3K10编辑于 2022-08-17
  • 来自专栏王小雷

    Mysql设置UTF-8字符集

    1.linux/ubuntu下设置mysql设置UTF-8字符集 1.1编辑 my.cnf 文件 root@server1:~# vim /etc/mysql/my.cnf ? 1.2添加内容后如下 [mysqld] character-set-server=utf8 [client] default-character-set=utf8 ? 1.4拓展,查看支持哪些字符集 root@server1:~# vim /usr/share/mysql/charsets/Index.xml ? 2.windows下设置mysql UTF-8字符集 编辑my.ini增加 [mysqld] character-set-server=big5 [client] default-character-set =big5 [windows下安装mysql及设置字符集]http://blog.csdn.net/dream_an/article/details/51058710 3.官方设置文档

    3.1K40发布于 2019-05-26
  • 来自专栏MYSQL轻松学

    MySQL修改字符集utf8mb4

    需要修改:库、表、字段 修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...] ;如:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4; 把表默认的字符集和所有字符列改为新的字符集: ALTER TABLE tbl_name CONVERT COLLATE utf8_general_ci; 只是修改表的默认字符集: ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE ;如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci; 修改字段的字符集: ALTER TABLE =utf8mb4; set global character_set_connection=utf8mb4; 修改配置文件: 修改mysql的my.cnf文件中的字符集 如:default-character-set

    18.8K51发布于 2020-06-11
  • 来自专栏MySQL技术

    utf8字符集下的比较规则

    前言: 在MySQL中,比较常用的字符集是utf8和utf8mb4。 这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果大家有使用4字节编码一个字符的情况,比如存储一些emoji表情啥的,需要使用 其实每个字符集下对应着若干个比较规则(也可以翻译为排序规则或校对规则,英文是COLLATE),同一字符集下,使用不同的比较规则会影响字符字段的比较和排序。 每种字符集都有一种默认的比较规则,SHOW COLLATION的返回结果中的Default列的值为YES的就是该字符集的默认比较规则,比方说utf8字符集默认的比较规则就是utf8_general_ci 表名 MODIFY 列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称]; 2.几种比较规则对比 utf8字符集下默认的比较规则是utf8_general_ci

    1.8K21发布于 2020-05-19
  • 来自专栏从ORACLE起航,领略精彩的IT技术。

    警示:AL32UTF8字符集不是ZHS16GBK字符集的超集

    今天有客户向我咨询:数据库由ZHS16GBK字符集修改为AL32UTF8字符集,发现中文的数据中小部分出现乱码,客户认为AL32UTF8明明可以支持更多的文字,不应该出现这样的情况才对。 不过,之前也一直有个误区,我们都知道AL32UTF8是可以支持多国语言的字符集,对于中文字节存储占用空间比ZHS16GBK多,然后第一反应就认为AL32UTF8应该是ZHS16GBK的超集。 这就说明我们要改的AL32UTF8字符集并不是ZHS16GBK的超集。 而客户端是Windows,chcp结果是936,也就是ZHS16GBK,这也进一步说明了ZHS16GBK和AL32UTF8字符集的不同。 同时实验还验证,如果数据库字符集本身是AL32UTF8,想修改成为ZHS16GBK字符集,也是一样的情况,需要加internal_use参数才可以转换,也就是说这种转换一样可能出现乱码,不过这个情况反倒好理解

    2.5K60发布于 2018-05-11
  • 来自专栏JavaEdge

    MySQL字符集你还在使用错误的utf8

    “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。 MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过这个问题。 ? 几乎所有的网络应用都使用了Unicode字符集。Unicode字符集包含了上百万个字符。最简单的编码是UTF-32,每个字符使用32位。 一篇类似本文这样的文章,如果使用UTF-8编码,占用的空间只有UTF-32的四分之一左右。 但是MySQL的“utf8字符集与其他程序还不兼容! utf8mb4与utf8mb3字符集形成对比,后者仅支持BMP字符,每个字符最多使用三个字节: 对于BMP字符,utf8mb4和utf8mb3具有相同的存储特征:相同的代码值,相同的编码,相同的长度。 utf8mb4是utf8mb3的超集,因此对于诸如以下串联的操作,结果具有字符集utf8mb4和utf8mb4_col的排序规则: SELECT CONCAT(utf8mb3_col, utf8mb4_

    1.6K10发布于 2021-02-22
  • 来自专栏nginx

    深入理解 MySQL 中的 UTF-8 与 UTF-8MB4 字符集

    深入理解 MySQL 中的 UTF-8 与 UTF-8MB4 字符集 在全球化的今天,数据的存储与处理需要支持多种语言与字符集。 本文将深入探讨 MySQL 中的两个常见字符集:UTF-8 和 UTF-8MB4,分析它们的区别、使用场景、存储差异以及如何选择合适的字符集,以确保应用系统的可扩展性和兼容性。 1. 在创建数据库、表或列时,你可以指定字符集: 创建数据库时指定字符集: CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_ SET utf8mb4 COLLATE utf8mb4_unicode_ci; 修改现有表的字符集: 如果你的表已经使用了 utf8 字符集,并且希望将其转换为 utf8mb4,你可以通过以下命令进行修改 总结 MySQL 提供的 utf8 和 utf8mb4 字符集为我们提供了灵活的选项来存储多语言文本数据。在选择字符集时,重要的是要考虑到应用的需求、数据的多样性以及存储空间的要求。

    1.1K10编辑于 2025-11-14
  • 来自专栏Panda诚

    字符集

    ,UTF-8 没有字节顺序问题,所以 UTF-8 适合传输和通信。 UTF-8可变长度字符编码: UTF-8是可变长度的字符编码,能够使用1~4个8位字节对编码表中的有效代码点进行编码,它被设计成向后兼容,Unicode的前128个字符与ASCII一一对应,所以有效的ASCII 文本也是有效的UTF-8编码。 UTF-8是互联网上使用最广的字符编码规则,占所有网页的92%左右。 UTF-8中的8意思是以8位为一个编码单元进行的编码,同理UTF-16就是以16位为一个单元进行编码。 为了更好的理解后面所介绍的内容,这里介绍一下UTF-8的编码规则。 ? 根据上图,解读 UTF-8 编码非常简单。

    2.4K10发布于 2020-09-01
  • 来自专栏架构之巅

    java字符集

    ;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。 在中文平台下,如果指定的字符集编码是UTF-8,那么按照UTF-8对中文的编码规则:每个中文用3个字节表示,那么"中文"这两个字符最终被编码成:-28 -72 -83、-26 -106 -121两组。 在中文平台下,如果指定的字符集编码是ISO-8859-1,由于此字符集是单字节编码,所以使用getBytes("ISO-8859-1")时,每个字符只取一个字节,每个汉字只取到了一半的字符。 在英文平台下,默认的字符集编码是Cp1252(类似于ISO-8859-1),如果使用GBK、UTF-8进行编码,得到的字节数组依然是正确的(GBK4个字节,UTF-8是6个字节)。 这些字节数组有可能是正确的(只要该字符集支持中文),也可能是完全错误的(该字符集不支持中文)。

    2.8K50发布于 2020-11-09
  • 来自专栏C/C++基础

    MySQL 字符集

    MySQL 服务器默认字符集和排序规则分别是 utf8mb4 和 utf8mb4_0900_ai_ci,但是您可以在服务器、数据库、表、列和字符串字面量级别指定字符集。 MySQL 8.0 开始,默认字符集改为 utf8mb4,而不是之前的 latin1;Maxlen 表示该字符集中单个字符最多可能占用的字节数,utf8mb4 中的一个字符最多占用 4 个字节,用于存储表情符号 系统变量 character_set_system 是服务器存储元数据(Metadata)使用的字符集,总是设置为 utf8。 CHARACTER SET 或者排序规则 COLLATE,MySQL 默认使用 character_set_server 服务器字符集(utf8mb4)和排序规则(utf8mb4_0900_ai_ci 例如,以下字符串常量使用相同的字符集: SELECT '数据库'; SELECT _utf8mb4'数据库'; SELECT _utf8mb4'数据库' COLLATE utf8mb4_0900_ai_ci

    3.8K30编辑于 2023-10-12
  • 来自专栏开源部署

    MySQL字符集

    是gb18030的子集,gb2312仅能存储简体中文字符 gbk包括中日韩字符的大字符集 通常使用gbk字符集足够 国际通用性比utf8差,不过utf8占用的数据库比gbk大(utf8是三字节字符集) utf8/utf8mb4 UTF全称(Unicode Transformation Format),是Unicode的一种存储方式,可变长度字符编码,又称万国码 数据库字符集尽量使用utf8( utf8mb4一个字符最多能存4字节,所以能支持更多的字符集;项目中常用utf8mb4存放emoji表情 latin1 是8bit (1 bytes)字符集,但不能覆盖亚洲、非洲语言 unidoce是 存储空间:char(N)类型的存储空间和字符集有关系,结合刚才字符集的知识点,一个中文在utf8字符集中占用3个bytes、gbk占用2个bytes、数字和字符统一用一个字符表示。 存储空间:varchar(N)类型的存储空间和字符集有关系,结合刚才字符集的知识点,一个中文在utf8字符集中占用3个bytes、gbk统一占用2个bytes、数字和字符一个字符表示。

    5.4K10编辑于 2022-08-18
  • 来自专栏程序猿DD

    Java 18 为什么要改 UTF-8 为默认字符集

    一分钟了解这一改动的意义,以及老版本用户的建议 关注视频号,订阅更多视频干货内容

    56110编辑于 2022-04-25
  • 来自专栏全栈程序员必看

    java NIO字符集Charset 支持的所有字符集

    可以通过以下方法打印所有的字符集 public void test(){ Map<String , Charset> map = Charset.availableCharsets System.out.println(entry.getKey() + "=" + entry.getValue()); } } } 得到所支持的所有字符集如下 Adobe-Standard-Encoding=Adobe-Standard-Encoding Big5=Big5 Big5-HKSCS=Big5-HKSCS BOCU-1=BOCU-1 CESU-8= CESU-8 cp1363=cp1363 cp851=cp851 EUC-JP=EUC-JP EUC-KR=EUC-KR GB18030=GB18030 GBK=GBK hp-roman8=hp-roman8 ISO-8859-8 ISO-8859-9=ISO-8859-9 KOI8-R=KOI8-R KOI8-U=KOI8-U macintosh=macintosh SCSU=SCSU Shift_JIS=

    2K30编辑于 2022-11-17
  • 来自专栏叨叨软件测试

    基于 AdoptOpenjdk 官方 Dockerfile 制作 jre8 镜像(修改字符集和时区)

    PS: Oracle JDK 8u211 和 8u212 两个版本是最后的免费版本。 -8u292-b10 基于 AdoptOpenJDK 官方修改 https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/8/jre/alpine /Dockerfile.hotspot.releases.full 修改点 修改字符集为:zh_CN.UTF-8 修改时区为:Asia/Shanghai PS:Centos、Ubuntu 版本 jre8 .com> # 字符集变量 ENV LANG='zh_CN.UTF-8' LANGUAGE='zh_CN:zh' LC_ALL='zh_CN.UTF-8' # 时区变量 ENV TIME_ZONE '; \ BINARY_URL='https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292

    2.3K10发布于 2021-07-16
  • 来自专栏前端心念

    mysql修改支持utf8mb4字符集编码格式

    数据库已设置字符集为utf8mb4, 但是由于node使用的mysql依赖 connector版本可能太低,有字符集issue, package.json 1"mysql": "2.18.1" 解决办法 ConnectionConfig.getCharsetNumber(options.charset) 4 5: options.charsetNumber || Charsets.UTF8_GENERAL_CI 6 7; 8 9改为 10 11this.charsetNumber = (options.charset) 12 13? ConnectionConfig.getCharsetNumber(options.charset) 14 15: options.charsetNumber || Charsets.UTF8MB4_UNICODE_CI

    1.8K10编辑于 2023-01-11
  • 来自专栏学习与分享

    字符集详解

    MySQL 字符编码集中有两套 UTF-8 编码实现:utf8 和 utf8mb4。 如果使用 utf8 的话,存储 emoji 符号和一些比较复杂的汉字、繁体字就会出错。 什么是字符集 ? 后来,人们对其进行了扩展得到了 ASCII 扩展字符集 。ASCII 扩展字符集使用 8 位(bits)表示一个字符,所以,ASCII 扩展字符集可以定义 256(2^8)个字符。 多字节字符集 多字节字符集是指每个字符占用多个字节的字符集,如UTF-8、UTF-16等。这种字符集可以表示多种语言字符,包括中文、日文、韩文等。 UTF-8是目前最常用的宽字符集之一。 mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 创建表时设置字符集:在创建表时,可以使用CHARACTER SET关键字指定表的字符集

    1.1K10编辑于 2024-02-20
领券