首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JAVA学习册|字符编码|GBK(一)

大家对这两个的字符编码集的认识应该是从乱码问题开始的吧,如Idea默认是utf-8的,某一天,用他打开了某个GBK老项目,那就GG了,今天我们就先来聊一聊GBK 一回生 每当遇到乱码问题,第一反应就是...首先我们来聊一聊为什么需要编码,小刀的理解是,没有编码之前,我们想说的话,只是存在于我们的脑海里面。...如学习java,我们就一直脑子里面想着要学习java,通过编码,我们可以大声的说出来,如我们中国人会说:我要学习java , 英美会说:I want to learn java 等等。...二回熟 具体学习编码方式之前,还需要明确一点,按照我们上面的分析,想的其实都是字符串,编完码之后都是byte编码和解码可以理解为字符串到byte和byte到字符串的过程。...从GBK源码中,我们也可以看到,encode, decode之前会初始化一个映射关系。 ? 然后我们源着代码往下看,可以看到两个大的对象,如下图所示: ? ?

1.2K30

utf-8,gbk,gb2312,unicode 编码

同时,UTF-8 编码也能够支持多种语言字符的表示,使得不同语言之间的交流变得方便。 2.GBK GBK 是中国国家标准的编码方式,主要应用于中文编码。...但是,GBK 编码的范围比较有限,对于一些生僻字或者少数民族字符就无法表示。 3.GB2312 GB2312 是中国国家标准的另一种编码方式,它是 GBK 的前身。...同时,GB2312 编码的兼容性不如 GBK 和 UTF-8,因此现代的应用中使用的较少。 通过上面的介绍,可以了解到utf-8, gbk, gb2312的区别。...此外,Unicode定义了每个字符的编号和名称,而UTF-8则是一种用于计算机上存储和传输Unicode字符的编码方式。...而UTF-8只是Unicode的一种编码方式,它只能够表示Unicode字符集中的一部分。 四.存储空间不同 存储和传输数据时,UTF-8通常比Unicode更节省空间。

24230

有什么理由将代码保存为 GBK 编码

针对这个问题的短回答就是:没有任何理由保存代码为 GBK。 将项目的文件或者数据库字符集等设计到编码的地方使用 GBK,会带来很严重的兼容性问题。...保存为 GBK 通常是历史遗留问题,尤其是老的 C/S 架构项目,代码多为 GB2312 / GBK早期的 Java EJB 项目中很多也会使用 GBK。... GBK 之前其实有一个更早的 GB2312 编码,这个编码字符集太小,经常乱码,才有了后面的 GBKGBK 帮助解决了不少问题。...随之 WEB 环境的快速演进,目前项目中包括数据库通常都会使用 UTF-8 编码,包括数据库驱动之间也会使用 UTF-8。...还有就是文件的编码,如果文件编码GBK,用编辑器还得为 IDE 设置特定的字符集,不是闲着没事找事嘛,直接用 UTF-8,解决所有问题。

84700

“maven编码gbk的不可映射字符”解决办法

二、解决办法 解决这个问题的思路: maven的编译插件中声明正确的字符集编码编码——编译使用的字符集编码与代码文件使用的字符集编码一致!!   安装系统之后,一般中文系统默认字符集是GBK。...所以当在中文XP或者win7系统开发,使用maven(mvn compile)编译项目的时候,就会出现“编码 gbk 的不可映射字符”: 这个是由于代码使用的UTF-8,而maven编译的时候使用的GBK...可以通过修改项目的pom文件,可以告诉maven这个项目使用UTF-8编码来编译。项目的pom.xml文件中添加下面的配置: 1 <!...-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码, 通过project.build.sourceEncoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译...-- 指明编译源代码时使用的字符编码, 7 maven编译的时候默认使用的GBK编码, 8 通过encoding属性设置字符编码, 9 告诉

4.1K20

Python 有关 Unicode UTF-8 GBK 编码问题详解

1.统一码(Unicode) Unicode 也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。对于世界上所有的语言文字 unicode 中都可以查看到。...unicode 很长一段时间内无法推广,直到互联网的出现。 2.UTF-8 编码 互联网的普及,强烈要求出现一种统一的编码方式。UTF-8 就是互联网上使用最广的一种 unicode 的实现方式。...其他实现方式还包括 UTF-16 和 UTF-32,不过互联网上基本不用。重复一遍,这里的关系是,UTF-8 是 Unicode 的实现方式之一。...格式:b'\\u6c49' 汉字gbk格式:b'\xba\xba' 汉字gb2312格式:b'\xba\xba' 可以看到以上结果,汉字的汉通过 print 打印时用的是 unicode 编码,存储时使用...with open(file_path, encoding='utf-8') as f: f.read() 当使用 gbk 编码保存的文件使用 utf8 打开时会报错,使用 gbk 打开即可 with

1.6K10

unicode、utf-8、ansi、gbk、gb2312编码详解

unicode、utf-8、ansi、gbk、gb2312编码详解 前言 作为一个开发人员或是测试人员,免不了要与各种各样的编码打交道,而且这些各种编码总是让人头大,现在我们就来揭开他们的庐山真面目 移动还是联通...于是扩展呗,把之前gb2312中没有利用的位好好利用起来,就成了gbk,这又增加了20000多个汉字,但是咱们少数名族也要用电脑啊,于是有了后来的 GB18030 GB2312和GBK都是用两个字节来编码的...其实ANSI并不是某一种特定的字符编码,而是不同的系统中,ANSI表示不同的编码。...终 现在我们就可以来看一下联通干不过移动的原因了,因为我们在记事本中不指定存储编码时默认时ansi,中国的电脑上也就是gbk编码,而联通的gbk编码是: c1 1100 0001 aa 1010 1010...没错,它就是与utf-8编码冲突了,我们第二次打开记事本的时候,记事本误以为它是utf-8编码

3.8K62

一图弄懂ASCII、GB2312、GBK、GB18030编码

例如GB2312编码的文件中可以出现ASCII字符,GBK编码的文件中可以出现GB2312和ASCII字符,GB18030编码的文件可以出现GBK、GB2312、ASCII字符。...GB2312中收录了6763个汉字以及682个特殊符号,已经囊括了生活中最常用的所有汉字。 【3】GBK 由于GB2312只有6763个汉字,我汉语博大精深,只有6763个字怎么够?...于是GBK保证不和GB2312、ASCII冲突(即兼容GB2312和ASCII)的前提下,也用每个字占据2bytes的方式又编码了许多汉字。...我国2000年和2005年分别颁布的两次GB18030编码,其中2005年的是2000年基础上进一步补充。至此,GB18030编码的中文文件已经有七万多个汉字了,甚至包含了少数民族文字。...实际使用中,GBK编码已经可以满足大部分场景了,GB18030编码中所有汉字都是我们这辈子都不一定能见到的文字,这也是平时为什么经常会使用GBK的原因吧。

39.5K153

Java编码ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16 编码方式详解

3 GBK GB2312有局限性,只能表示6000个字符,GBK是对GB2312的升级,GBK与GB2312非常相似,唯一的不同: 结构 使用GBK编码,当读取到一个数值上小于127的字节时当作一个ASCII...仅仅是一点微小的变化,让GBK2312的基础上多增加了20000余个字符,GBK也是我们最常用的中文编码表。...相比较UTF-8,GBK需要的空间小,如果我们工作的受众对象是汉语对象,使用GBK没有问题,但需注意java语言使用unicode编码,有可能会存在转换问题导致乱码,使用需谨慎。...4 Unicode 我们的GB2312和GBK都是ASCII的基础上修改而来,利用了ASCII只使用127个字节的特点,而全世界其他的国家也是如此操作,导致了各个国家之间存在复杂的编码转换问题。...结构 绝大多数情况下,UTF-16中一个字符固定使用两个字节编码,一个字符两个字节是UTF-16编码的概念。 极少数情况下也会出现三个字节表示一个字符的情况。

2K10
领券