java默认编码
❶ java中为什么要用ISO-8859-1编码啊
Java使用ISO-8859-1编码是因为这种编码国际上是通用的,可以兼容很多国家的语言编码。我们国家的gbk编码格式是可以换成ISO-8859-1格式神汪的。
国际中通用的还有一种编码格式就是UTF-8能兼容世界上几乎所有的语言,在网络传输迅握为了避免出现乱码,都采用这种编码方游昌仔式。
❷ java中的String的默认编码是什么
可以通过如下代码获得默认编码:
System.out.println(Charset.defaultCharset());
字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。
在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为标准。但这些字符集的局限很快就变得明显,于是人们开发了许多方法来扩展它们。对于支持包括东亚CJK字符家族在内的写作系统的要求能支持更大量的字符,并且需要一种系统而不是临时的方法实现这些字符的编码。
❸ java怎么设置为utf-8的编码
要让一个
Java
源文件打开时编码格式为
UTF-8,需要做2件事情:
1)设置Java
源文件的默认编码格式为UTF-8;
2)设置workspace的编码格式为UTF-8。
相应设置如下:
设置
Java
源文件的默认编码格式为
UTF-8
在
Windows->Preference
页面中,选择
General->Content
Types
在右边的框中,选择
Text->Java
Source
File,将下面的
Default
Encoding
改为
UTF-8
设置
workspace
的编码格式为
UTF-8
在
Windows->Preference
页面中,选择
General->WorkSpace
选择右侧框中的
Text
File
encoding,改为
UTF-8
设置完这2处,默认打开
Java
源文件就是UTF-8编码了。
❹ java使用unicode为默认编码是什么意思
java初学者都会接触到一个概念,既java的默认编码是uincode,但书上也就出现这句话而已,究竟是什么意思就没再说。其实对于一个程序员来说,一个平台的编码方式是不用了解的,因为这是他内部处理字符的方式,和我们顶层设计程序是没有多大关系(如果真要说有关系的话,一个就是你对这个平台的熟悉程度,另一个就只能是你要处理的字符奇葩到要考虑编译器有没有包括这个字符)。但这并不是指我们在编程的时候完全不用考虑编码问题,恰恰相反,编码问题是跨系统交流的基本。
那java哪里会用到编码问题呢?最常见的是流,下面有两个例子。1.在linux下用java创建了一个文件(这里默认代码里没有指定编码),里面包括英文和中文,然后在windows下同样用java读取这个文件,并输出,结果中文出现了乱码;2.android手机和电脑的两个java程序进行类似qq的信息交流,中文都是乱码。疑惑来了,java不是跨平台吗,而且默认编码就是unicode,为什么会有编码? 正如上面所说,java的系统编码是管理内部变量等信息的,是统一不能变的,但上面两个例子出现乱码的原因在于这些字符信息是从外界读取的,编码方式直接影响到字符的显示,比如gbk一个字符是1或2个字节,中文是2个,而utf8是1到4个字节不定,中文是3个,utf16是2个字节固定不变,所以很明显了,同样字节数的源信息可以每2个或者每3个字节表达一个中文,不同编码当然不同了,而且即使gbk和utf16都是两个字节表示一个中文,同样的二进制也对应不同的字符。所以从外部读取到这些byte信息后,就要指定编码,比如new
String(byte[],charset),当然,也可以在构建流的时候就指定,像new
InputStreamReader(InputStream,charset)等,但像BufferedReader等没有相应的构造函数,就只能把上面的InputStreamReader作为参数了。
总结:
1.String和流(包括控制台的输出输入)的默认编码是根据系统而定,即jvm假设这些信息是当前系统创建的,windows默认中文是gbk,linux和mac是utf8(这里又来了,utf8和unicode是什么意思,简单地说,unicode是把每个字符和一个唯一的二进制码对应的标准,而utf是unicode
transformation
format,即如何表示每个唯一的二进制码,utf8,utf16和utf32是不同的编码方式);
2.IDE设置的编码方式用于存取java源文件,对于在不同系统平台上共享代码很重要;
3.java编译器采用utf8,即class文件的存储是用utf8,因为相对于utf16,utf8在处理英文占用内存小,而程序大部分都是英文;
4.jvm运行时的编码方式是utf16,即jvm用utf8从class文件读取程序后再转化为utf16编码的字符串,因为utf16是2个字节,统一的长度更方便jvm申请数组等操作;
5.网页大部分是用utf8编码的,在html头几行有charset的信息,在对下载下来的网页进行解析时,要注意编码,谷歌网络在对搜索结果的解析时也是用utf8的,所以在涉及到网络时编码问题非常重要,本人曾经栽得很惨,当然了,谁叫windows的编码不是utf8;
6.不知大家有没有经历过,如果编码弄错了,一般只有中文会出现乱码,而中文后面的英文是正确的,不合理啊,这不是类似多骨诺米牌吗,一个错了,后面不是全倒吗。所以别小看那些制定编码的专家,像utf8每个字节的前几位都用来表示一些信息,不同字节还不一样,而utf16也有,所以弄出了utf16le和utf16be
❺ 为什么java的默认编码不是utf-8 而是gbk
因为系统是中文语言的,得到的是GBK编码,所以肯定不是utf的。
工具:
win7
jdk
方法:
在计算机上右键选择属性
❻ JAVA编码时为什么用的是utf-8呢
Linux好像默认是UTF-8吧。WINDOWS平台java默认编码是GBK,你也可以自己设置编码啊
❼ java编码理解
<%@ page contentType= text/ charset=utf pageEncoding= GBK %>
jsp页面(pageEncoding)——根据pageEncoding的设定读取jsp——>翻译成统一的UTF JAVA源码(即 java)——由JAVAC的JAVA源码至java byteCode的编译——>
编译成UTF encoding的二进制码(即 class)——Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码——>输出contentType编码给浏览器
页面输入的参数用pageEncoding来编码
页面的默认编码是什么?
ntentType的默认编码是什么?
编码和解码过程各种文件时什么编码
response setContentType( text/ charset=gb ) 是在页面显示时设置的字符格式request setCharacterEncoding( gb ) 是servlet接受请求后对请求中的字符进行设置字符格式 因为默认通过网络传输的内容都被进行了iso 编码 如果想在后处理的时候不让中文成乱码 那就得对得到的内容进行gb 编码
JSP pageEncoding和contentType属性
JSP要经过两次的 编码 第一阶段会用pageEncoding 第二阶段会用utf 至utf 第三阶段就是由Tomcat出来的网页 用的是contentType
关于JSP页面中的pageEncoding和contentType两种属性的区别
pageEncoding是jsp文件本身的编码
contentType的charset是指服务器发送给客户端时的内容编码
JSP要经过两次的 编码 第一阶段会用pageEncoding 第二阶段会用utf 至utf 第三阶段就是由Tomcat出来的网页 用的是contentType
第一阶段是jsp编译成 java 它会根据pageEncoding的设定读取jsp 结果是由指定的编码方案翻译成统一的UTF JAVA源码(即 java) 如果pageEncoding设定错了 或没有设定 出来的就是中文乱码
第二阶段是由JAVAC的JAVA源码至java byteCode的编译 不论JSP编写时候用的是什么编码方案 经过这个阶段的敏埋结果全部是UTF 的encoding的java源码
JAVAC用UTF 的encoding读取java源码 编译成UTF encoding的二进制码(即 class) 这是JVM对常数字串在二进制码(java encoding)内表达的规范
第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码 输出的结果 也就是在客户端见到的 这时隐藏在阶段一和阶段二的参数contentType就发挥了功效
contentType的设定
pageEncoding 和contentType的预设都是 ISO 而随便设定了其中一个 另一个就跟着一样了(TOMCAT 是如此) 但这不是绝对的 这要看各自JSPC的处理方式 而pageEncoding不等于contentType 更有利亚洲区的文字 CJKV系JSP网页的开发和展示 (例pageEncoding=GB 不等于 contentType=utf )
jsp文件不像 java java在被编译器读入的时候默认采用的是操作系统所设定的locale所对应的编码 一般我们不管是在段侍记事本还是在ue中写代码 如果没有经过特别转码的话 写出来的都是本地编码格式的内容 所以编译器采用的方法刚好可以让虚拟机得到正确的资料
但是jsp文件不是这样 它没有这个默认转码过程 但是指定了pageEncoding就可以实现正确转码了
举个例子
<%@ page contentType= text/ charset=utf %>大都会打印出乱码 因为我输桥燃蚂入的 你好吗 是gbk的 但是服务器是否正确抓到 你好吗 不得而知
但是如果更改为
lishixin/Article/program/Java/hx/201311/26477