设为首页收藏本站
机战Z2破界篇 星组汉化 下载

星组游戏论坛

 找回密码
 注册(QQ注册+邀请注册)

QQ登录

只需一步,快速开始

查看: 813|回复: 3

[心得] 关于java乱码的总结 [复制链接]

Rank: 11Rank: 11Rank: 11Rank: 11

UID
98177
星币
23
积分
9
阅读权限
90
注册时间
2013-4-11
最后登录
2014-1-16
发表于 2013-6-9 21:32:02 |显示全部楼层
乱码问题一般都是编码方式不匹配的问题,总体解决的办法如下
3 I+ {7 K5 _& v* x* y一、字符串编码的转换
! _: c, J# P, U0 J5 E    1、新字符串=new String(旧字符串.getByte("编码1"),"编码2");
  d- y/ b& A2 H3 i% x    2、编码1为旧字符串的编码方式,编码2为新字符串编码方式
8 r  d2 {- [8 _8 @9 I二、java-Socket接受中文乱码的解决
+ n2 j' |) i8 x7 g* D    在服务端默认的编码情况下,JAVA的SOCKET接收需要GBK编码,而C#的接收需要UTF-8编码。
9 p- u# s' G3 b# u  V    当然也可以约定服务器端和客户使用相同的编码。1 d. T. \! }, Q6 E+ z, J. z
    1、客户端发送: # B& |. t8 [- C5 ^9 d
       PrintWriter pw =new PrintWriter(socket.getOutputStream());
: j# M+ z  I1 j5 _  W       pw.println("数据");  //这个数据可以转换成指定编码 0 p7 `$ K, ^- ^1 P
       pw.flush();+ g2 ~4 N/ z. ?& l( S( ], Y- v- i
    2、服务器端接收
! y! s7 |+ j$ a' Q$ l4 p      BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(),"编码")); //这个编码要和客户端的编码相同# j) [" T. _6 c
      br这个流就可以随便用了8 t' G7 c- ~9 H4 P) ]* e7 _
    3、也可以这样约定* t/ n7 H' A" C
       接收端:in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
) B2 U2 |6 Y. P: w! h$ y       发送端:out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"));  
2 \) ~, a7 U4 x& P  q7 Q) ?三、常用的编码方式( q( @  l' y) t2 y
    1、UTF-8:汉字3字节,英文字母1字节,特殊字符2字节
+ b4 G% O9 R; k. M, f9 ^    2、GBK:汉字2字节,英文和数字1字节
$ Z* a3 T+ A4 S# d( h" \! \$ `    3、unicode:统一连个字节/ ?9 X: X9 v3 r. q
    4、iso8859-1:只支持英文,一个字节
+ B& `! h( v: `, p' l    更详细的编码介绍参照http://www.cnblogs.com/lxzh/archive/2012/05/30/2526557.html) P4 Y0 q( F/ m7 {& M- ~* k3 l
头像被屏蔽

禁止发言

UID
115225
星币
59
积分
348
阅读权限
0
注册时间
2016-7-25
最后登录
2017-10-24
发表于 2017-6-12 18:40:54 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

禁止发言

UID
115225
星币
59
积分
348
阅读权限
0
注册时间
2016-7-25
最后登录
2017-10-24
发表于 2017-9-27 15:11:58 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

禁止发言

UID
115225
星币
59
积分
348
阅读权限
0
注册时间
2016-7-25
最后登录
2017-10-24
发表于 2017-10-21 16:15:48 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Archiver|星组游戏论坛 ( 京公网安备110403080002 )  

GMT+8, 2018-8-17 19:48

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部