导航:首页 > 编程语言 > javautf8编码

javautf8编码

发布时间:2023-03-18 02:10:29

java如何判断编码是否是utf8编码

UTF-8编码规范及如何判断文本是UTF-8编码的
UTF-8的编码规则很简单,只有二条:
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个饥销符号的unicode码。
根据以上说明下面给出一段java代码判断UTF-8格式
/**
*UTF-8编码格式判断
*
*@paramrawtext
*需要分析的数据
*@return是否为UTF-8编码格式
*/
publicstaticbooleanisUTF8(byte[]rawtext){
intscore=0;
inti,rawtextlen=0;
intgoodbytes=0,asciibytes=0;
神肢铅//MaybealsouseUTF8ByteOrderMark:EFBBBF
//
rawtextlen=rawtext.length;
for(i=0;i<rawtextlen;i++){
if((rawtext[i]&(byte)0x7F)==rawtext[i]){
//最高位是0的ASCII字符
asciibytes++;
//IgnoreASCII,canthrowoffcount
}elseif(-64<=rawtext[i]&&rawtext[i]<=-33
游好//-0x40~-0x21
&&//Twobytes
i+1<rawtextlen&&-128<=rawtext[i+1]
&&rawtext[i+1]<=-65){
goodbytes+=2;
i++;
}elseif(-32<=rawtext[i]
&&rawtext[i]<=-17
&&//Threebytes
i+2<rawtextlen&&-128<=rawtext[i+1]
&&rawtext[i+1]<=-65&&-128<=rawtext[i+2]
&&rawtext[i+2]<=-65){
goodbytes+=3;
i+=2;
}
}
if(asciibytes==rawtextlen){
returnfalse;
}
score=100*goodbytes/(rawtextlen-asciibytes);
//Ifnotabove98,
//Allowsforsome(few)badformedsequences
if(score>98){
returntrue;
}elseif(score>95&&goodbytes>30){
returntrue;
}else{
returnfalse;
}

另外对于正规的文本文件来说UTF-8的文件开头有3个字节来标识该文本是UTF-8编码
EF,BB,BF三个字节
但通常不采用以下这种方案因为许多文件不标准
(byte[]b)
{
if(b!=null&&b.length>3)
{
byteutf8[]={(byte)0xEF,(byte)0xBB,(byte)0xBF};
if((b[0]==utf8[0])&&(b[1]==utf8[1])&&(b[2]==utf8[2]))
returntrue;
}
returnfalse;
}

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

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

工具:

win7

jdk

方法:

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

⑶ 怎么使java输出的文件以UTF-8编码

代码如下:

(Stringname)throwsFileNotFoundException,UnsupportedEncodingException{

FileOutputStreamoutputStream=newFileOutputStream(name);

=newOutputStreamWriter(outputStream,"utf-8");

BufferedWriterwriter=newBufferedWriter(outputWriter);

returnwriter;
}

⑷ 怎么用java把一个字符串进行utf8编码

String text = “字符串”;

byte[] b_utf8 = text.getBytes("UTF-8"); //utf-8

byte[] b_iso88591 = text.getBytes("ISO8859-1"); //iso8859-1

byte[] b_gbk = text.getBytes("GBK"); //gbk

string unicode = getUnicode(text);//unicode

public static String getUnicode(String source) {

String result = "";

for (int i = 0; i < source.length(); i++) {

result += "\u"+Integer.toHexString((int) source.charAt(i));

}

return result;

}

⑸ java 怎么把一个字符串进行utf8编码

楼上答得不对,请相信我的方法,已经确认过:

String s="abc";
String s1=URLEncoder.encode(s, "utf-8");

⑹ java下如何设置utf-8

可以直接在开发工具中设置java文件的含掘编码:
eclipse文件编码设置:
1. 点击谈冲核window。
2. 在列表最下点击reference。
3. 在reference界面点击Workspace
4. 在右边的Tex file encoding点判胡击Other。
5. 选择 GBK或者 UTF-8编码即可。

⑺ 在java中gbk怎么转utf8编码

java中,编码是字节转字符的伍宽时候产生的不同映射造成的差异。那我们就可以利用这一点实现。例如,我们有一个gbk编码格式的字符串,那我们先把它的字节得到。
String s = "腔烂亮abc";
byte[] b = s.getBytes();
再将其转为需要的编码格式历让。如utf-8
String newStr = new String(b,"utf-8")
binggo~!!

⑻ 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如何把string转为utf-8

java不同编码之间进行转换,都需要使用unicode作为中转。

String str = "任意字符串";

str = new String(str.getBytes("gbk"),"utf-8");

备注说明:

str.getBytes("UTF-8"); 意思是以UTF-8的编码取得字节

new String(XXX,"UTF-8"); 意思是以UTF-8的编码生成字符串饥冲

举例:

public static String getUTF8XMLString(String xml) {

// A StringBuffer Object

StringBuffer sb = new StringBuffer();

sb.append(xml);

String xmString = "";

String xmlUTF8="";

try {

xmString = new String(sb.toString().getBytes("UTF-8"));

xmlUTF8 = URLEncoder.encode(xmString, "UTF-8");

System.out.println("utf-8 编码:" + xmlUTF8) ;

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// return to String Formed

return xmlUTF8;

(9)javautf8编码扩展阅读:

UTF-8编码规则:

如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码茄肢颂的字节数,其余各字节均以10开头。

实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。

Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上颤郑述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。

⑽ java怎么把把字符转成utf-8

java不同编码之间进行转换,都需要使用unicode作为中转。
以utf-8转gbk为例,示例代码如下:
String t = "这是一个字符串aaa111";
String utf8 = new String(t.getBytes( "UTF-8"));
System.out.println(utf8);
String unicode = new String(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
String gbk = new String(unicode.getBytes("GBK"));
System.out.println(gbk);

阅读全文

与javautf8编码相关的资料

热点内容
汉语词典pdf下载 浏览:351
android公网ip 浏览:611
要塞1地图放哪个文件夹 浏览:848
凡科建站怎么弄服务器 浏览:939
苹果手机怎么设置app播放 浏览:202
下载网站源码用什么浏览器 浏览:241
六线谱pdf 浏览:156
linuxmysqlsock 浏览:239
人教版数学pdf下载 浏览:460
文档安全加密系统 浏览:491
数控铣床编程简单数字 浏览:788
编程电缆如何重启 浏览:121
myqq命令行发消息 浏览:365
日产逍客怎么使用app升窗 浏览:503
安卓系统怎么快速删除微信内容 浏览:653
csharppython 浏览:409
程序员脖子按摩仪 浏览:563
小米桌面文件夹乱码怎么回事 浏览:858
点歌台app怎么连接 浏览:318
大学电脑编程学什么好 浏览:348