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

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

大家对这两个的字符编码集的认识应该是从乱码问题开始的吧,如Idea默认是utf-8的,某一天,用他打开了某个GBK老项目,那就GG了,今天我们就先来聊一聊GBK 一回生 每当遇到乱码问题,第一反应就是...首先我们来聊一聊为什么需要编码,小刀的理解是,没有编码之前,我们想说的话,只是存在于我们的脑海里面。...回到机算机身上来就是,在这个应用程序里面想的是这个值,那么我们要持久化下来,存成文件,存到数据库等等给别的程序访问,或者发送到网络,给别的计算机访问,这些都是要编码,把想的,用大家都认识的一种语言格式来写出来...二回熟 在具体学习编码方式之前,还需要明确一点,按照我们上面的分析,想的其实都是字符串,编完码之后都是byte编码和解码可以理解为字符串到byte和byte到字符串的过程。...从GBK源码中,我们也可以看到,在encode, decode之前会初始化一个映射关系。 ? 然后我们源着代码往下看,可以看到两个大的对象,如下图所示: ? ?

1.1K30

utf-8,gbk,gb2312,unicode 编码

我们常常听到如下编码: UTF-8、GBK、GB2312 和 Unicode。这些编码方式之间有何不同呢?下面我们来详细了解一下。...同时,UTF-8 编码也能够支持多种语言字符的表示,使得不同语言之间的交流变得方便。 2.GBK GBK 是中国国家标准的编码方式,主要应用于中文编码。...但是,GBK 编码的范围比较有限,对于一些生僻字或者少数民族字符就无法表示。 3.GB2312 GB2312 是中国国家标准的另一种编码方式,它是 GBK 的前身。...它也是一种双字节编码,主要用于表示简体中文。 相比 GBK 编码,GB2312 编码的范围更小一些,但它能够支持的字符数量也相对较少。...同时,GB2312 编码的兼容性不如 GBK 和 UTF-8,因此在现代的应用中使用的较少。 通过上面的介绍,可以了解到utf-8, gbk, gb2312的区别。

22330

Node.js文件编码格式的转换

项目很多 lua 文件不是 utf-8格式,使用 EditPlus 查看的时候,显示为ASCII。还有的是带BOM的,带BOM倒好处理,之前写过,有一定规律。...ASCII编码就比较蛋疼,通过搜索网上资源,反复测试对比,最终形成下面比较靠谱的方法(有一些 EditPlus显示编码为utf-8但node.js库返回的却是其它编码>_<) 判断修改是否无误,只需要在修改完之后...,通过SVN提交,浏览提交列表,双击任意一项待提交文件,如果显示下图所示的对话框,则说明修改成功,其它都会看到中文反而变成乱码了 ?...而如果返回是格式,先判断是否有PC下的换行符,如果有则全部将它视为GBK进行处理。 整个思路其实是比较简单,难点在于如果判断文件编码格式。...如果有空而且有兴趣,可以下载Notepad++的源码,看它是如何判断文件编码格式 注:上面的方法所修改的文件,跟 Mac 上需要提交的文件列表是一致的,至少能解决我目前遇到的问题。

5.4K40

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

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

83400

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

第二个:我们已经知道,英文字母只用一个字节表示就够了,如果 unicode 统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是 0,这对于存储来说是极大的浪费,文本文件的大小会因此大出二三倍...格式:b'\\u6c49' 汉字gbk格式:b'\xba\xba' 汉字gb2312格式:b'\xba\xba' 可以看到以上结果,汉字的汉通过 print 打印时用的是 unicode 编码,存储时使用...utf8,也即是我们保存文件时常用的编码 with open('xxx.txt','w',encoding='utf-8') as f: f.write(xxx) 打开的时候也要指定文件编码...with open(file_path, encoding='utf-8') as f: f.read() 当使用 gbk 编码保存的文件使用 utf8 打开时会报错,使用 gbk 打开即可 with...GBK: 汉字国标扩展码,基本上采用了原来 GB2312-80 所有的汉字及码位,并涵盖了原 Unicode 中所有的汉字 20902,总共收录了 883 个符号, 21003 个汉字及提供了 1894

1.6K10

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

java源代码在Eclipse中显示是没有任何错误的,可是执行"maven install"命令编译项目时就会出现上述的错误,导致项目编译失败。...二、解决办法 解决这个问题的思路: 在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来编译

4.1K20

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

这里写图片描述 保存后再从新打开刚刚的文件,你会发现微软表态了: ? 这里写图片描述 微软的意思大概就是,联通是啥玩意儿?同样的方法,移动就没毛病。想知道为什么吗?...,他们用一个字节来表示他们使用的字符,a,b,c,d什么的,实际上他们只用了128个,其中0~31是控制字符,32~127是可显示字符,这就是后来的ascii编码了: ?...于是扩展呗,把之前gb2312中没有利用的位好好利用起来,就成了gbk,这又增加了20000多个汉字,但是咱们少数名族也要用电脑啊,于是有了后来的 GB18030 GB2312和GBK都是用两个字节来编码的...你 的美国同事Bob的系统中ANSI编码其实是ASCII编码(ASCII编码不能表示汉字,所以汉字为乱码),而你 的系统中(“汉字”正常显示)ANSI编码其实是GBK编码,而韩文系统中(“한국어”正常显示...终 现在我们就可以来看一下联通干不过移动的原因了,因为我们在记事本中不指定存储编码时默认时ansi,在中国的电脑上也就是gbk编码,而联通的gbk编码是: c1 1100 0001 aa 1010 1010

3.7K62

Python中GBK, UTF-8和Unicode的编码问题

为了让计算机能够显示、处理汉字,勤劳朴实的中国人民制定了GBK(GB2312的扩展)编码,这是一种兼容ASCII的不定长(长度为1-2)编码,对于基本的128个字符仍旧用一个字节表示,但“翔”这样的中文就用两个字节表示...由于Unicode编码的字符串体积很大,因此一般来说Unicode编码只是文字在内存中的内在形式,具体的存储(如文件、网页等)都需要靠外在的编码(UTF-8、GBK等)诠释。...它们的区别如下: 字符串类型 常量子串表示 内存中表示 len() len含义 str S=“呵呵” 与源码文件完全一致,一坨二进制编码 若源码文件为UTF-8编码, len(S)=6 字节数 unicode...'),GBK每个汉字占2字节 print s # 在GBK/ANSI环境下(如Windows),输出乱码, #因为此时屏幕输出会被强制理解为GBK;Linux下显示正常 print g # 在Windows...,但一般只用作文字的内部表示,文件、网页(也是文件)、屏幕输入输出等处均需使用具体的外在编码,如GBK、UTF-8等; encode和decode都是针对unicode进行“编码”和“解码”,所以encode

3.9K10
领券