Java 为什么能给 char 类型赋值中文字符

zhouyin · 2025-2-9 11:07:46 · 4480 次点击
java 文档里有写 一个 char 由两个自己组成 但一个 utf8 汉字由三个字节组成
为什么这样赋值没事?

char a = '我';
举报· 4480 次点击
登录 注册 站外分享
42 条回复  
cmdOptionKana 初学 2025-2-9 11:25:42
问了一下 deepseek ,它说:UTF-8 编码的汉字在 Java 中会自动转换为 UTF-16 编码,因此赋值时不会出现问题。
theoriz 小成 2025-2-9 11:28:40
@Livid #1 AI
soulflysimple123 初学 2025-2-9 11:32:21
char 是 utf-16 编码
tbc3211 小成 2025-2-9 11:36:37
魔怔
zhouyin 楼主 小成 2025-2-9 11:38:35
@soulflysimple123 输入法输入的汉字是三个字节 编译器自动把汉字转成 utf16 进行存储了
maocat 小成 2025-2-9 11:50:31
@theoriz 哥们你魔怔了吧,人家是把 ai 的提炼了一遍,一眼就能看清说啥,而不是 ai 的长篇大论,你这也举报?
sagaxu 初学 2025-2-9 12:47:15
一个 char 不够那就两个啊,code point 是 int 类型,超出 BMP 的字符不能用单个 char 表示,要用两个 char 组合
Fca 初学 2025-2-9 12:55:51
@theoriz 有文革那味了 人人自危
zhouyin 楼主 小成 2025-2-9 12:57:53
神奇的是 把变量用 FileWriter.write 方法 写入到文件 还是 3 个字节
12345下一页
返回顶部