当前位置:首页 » 编程语言 » javaencoding

javaencoding

发布时间: 2024-06-16 05:46:12

‘壹’ 为什么java的默认编码不是utf-8 而是gbk

因为系统是中文语言的,得到的是GBK编码,所以肯定不是utf的。

工具:

win7

jdk

方法:

  1. 在计算机上右键选择属性

‘贰’ java怎么设置utf8

服务器端
修改数据库配置文件/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端,比如phppython需要看下client是否支持,如果不能在连接字符串中指定的话,可以在获取连接之后,执行”set names utf8mb4″来解决这个问题;
因为utf8mb4是utf8的超集,理论上即使client修改字符集为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。

‘叁’ java编译出错

由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式。

在编译java程序时,若我们不指定源程序文件的编码格式

  • JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK)

  • 然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。

  • 然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中

对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk xx.java,当然就会出现不兼容的情况。

解决方法

1.使用-encoding 指定字符集

javac -encoding utf-8 xx.java

2.把源文件编码修改成ASCII

‘肆’ java中编码与解码分别指什么

java中编码:URLEncoder.encode(strUri,"utf-8");

java中解码码:URLDecoder.decode(strUri,"utf-8");

‘伍’ notepad++编java显示不出中文,编码GBK的不可映射字符

错误原因:

由于JDK是国际版的,在编译的时候,如果没有用-encoding参数指定JAVA源程序的编码格式,则javac.exe首先获得操作系统默认采用的编码格式,也即在编译java程序时,若不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。

解决方案:

1.英文版notepad++

菜单:Configure-->Options-->JDKTools-->Compiler

2.中文版 notepad++

菜单:设置→首选项→新建,选择编码方式为ANSI.

热点内容
别克s60和君威配置哪个好 发布:2024-11-27 00:36:03 浏览:722
数据库的文件名称 发布:2024-11-27 00:30:04 浏览:336
javaweb与android交互 发布:2024-11-27 00:28:26 浏览:918
华为手机方舟编译器emui91 发布:2024-11-27 00:10:46 浏览:948
高考时老妈解压 发布:2024-11-27 00:09:34 浏览:358
全振动算法 发布:2024-11-27 00:00:24 浏览:843
编译程序用锐龙好还是酷睿好 发布:2024-11-26 23:47:09 浏览:897
苹果缓存清理后会加速吗 发布:2024-11-26 23:28:11 浏览:139
我的世界服务器修改开放端口 发布:2024-11-26 23:22:51 浏览:52
qt5编译器 发布:2024-11-26 23:22:04 浏览:517