修改数据库配置文件/etc/my.cnf
character-set-server=utf8mb4
collation_server=utf8mb4_unicode_ci
重启MySQL(按照官方文档,这两个选项都是可以动态设置的,但是实际的经验是Server必须重启一下)
已有的表修改编码为utf8mb4
ALTER TABLE
tbl_name
CONVERT TO CHARACTER SET
charset_name;
使用下面这个语句只是修改了表的default编码
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4
客户端
jdbc的连接字符串不支持utf8mb4,这个 这种方式 来解决的,如果服务器端设置了character_set_server=utf8mb4,则客户端会自动将传过去的utf-8视作utf8mb4。
Connector/J did not support utf8mb4 for servers 5.5.2 and newer.
Connector/J now auto-detects servers configured with character_set_server=utf8mb4 or treats the Java encoding utf-8 passed using characterEncoding=... as utf8mb4 in the SET NAMES= calls it makes when establishing the connection. (Bug #54175)
其他的client端,比如php、python需要看下client是否支持,如果不能在连接字符串中指定的话,可以在获取连接之后,执行”set names utf8mb4″来解决这个问题;
因为utf8mb4是utf8的超集,理论上即使client修改字符集为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。
1、检查php.ini文件,确认default_charset设置为正确值,如utf-8等。2、在php.ini文件中,添加一行”mime_magic.magicfile=<path_to_mime_magic_file>”,其中<path_to_mime_magic_file>替换为文件的实际路径,以便PHP能够正确识别文件的编码。
3、确保Apache服务器有AddDefaultCharset设置,并且其值与php.ini文件中的default_charset值一致。
4、确保Apache服务器的mod_mime模块启用,以便它能够根据文件的扩展名正确设置文件的编码。
5、确保Apache服务器的mod_headers模块启用,以便它能够使用php_header()函数正确设置文件的字符集。
6、在Apache服务器的配置文件中,添加一行”AddDefaultCharset <charset>”,其中<charset>替换为正确的字符集名称,以便Apache能够正确设置文件的编码。
7、在php文件中,使用php_header()函数设置文件的字符集,该函数需要mod_headers模块支持。
java中定义一个字符串数组方式如下:1.String[] str={"AAA","BBB","CCC"}
2.String str[]={"AAA","BBB","CCC"}
string类型和其他基本类型相似,创建数组时,有上述两种方式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)