android 中国通信乱码问题

android 中国通信乱码问题

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1.要解决中文乱码问题。首先得了解什么是字符编码

计算机要处理各种字符,就须要将字符和二进制内码相应起来,这样的相应关系就是字符编码。

要制定字符编码首先要确定字符集,并将

字符集内的字符排序。然后和二进制数字相应起来。依据字符集内字符的多少。确定几个字节来编码。

2.经常使用的字符编码

ASCII 编码是眼下计算机中经常使用的最广泛地 字符集及其编码。

ISO-8859-1能够表示的是西欧语言。看起来非常单一,可是因为是单字节编码,与计算机最基础的表示单位一致,所以在非常多时候。仍旧使用ISO-8859-1编码来表示,并且在非常多协议上默认使用这样的编码。

Unicode编码(统一码),通常所说的UTF-8就是Unicode编码的实现方式。

GB2312字集是简体字集。BIG5字集是台湾繁体字集;GBK字集是简繁字集;GB18030 是国家制定的一个强制性大字集标准;Linux系统默认的使用的是ISO-8859-1编码,。如今的PC平台必须支持GB18030。对嵌入式产品暂不作要求。所以手机、MP3一般仅仅支持GB2312。
3.网络传输产生中文乱码原因

网络通信中,产生乱码的原因主要是通信过程中使用了不同的编码方式:server中的编码方式,传输过程中的编码方式,传输到达终端设备的编码方式。

因此在传输过程中就须要至少两次编码转换:首先从server编码转为网络编码,再从网络编码转为终端设备编码。在转换的过程中出现不论什么情况都可能出现编码混乱。

4.处理中文乱码问题经常使用两种方式解决

(1)因为大部分终端设备都支持Unicode字符集。所以在连接网页时。我们希望网页数据在网络传输时使用UTF-8方式传输,我们就能够将UTF-8转化为Unicode字符集。以下我们将通信过程中得到的流转化为字节。然后再将字节按GB2312 的方式进行转换得到字符串。

InputStream is = conn.getInputStream();BufferedInputStream bis = new BufferedInputStream(is);byte bytearray[] = new byte[1024];int current= -1;int i=0;while((current=bis.read())!=-1) {bytearray[i] =(byte) current;i++;}resultData = new String (bytearray,"GB2312");//网络中以字节想形式默觉得UTF-8进行编码,以GB2312显示到终端

通过上面的转换,“resultData”字符串便能够显示中文效果了。

(2)还有一种方式是书记在传递的过程中使用ISO-8859-1字符集,这样就是直接使用了ASCII编码方式,当然在传递到终端设备时。须要将其数据反转才可以正常的显示。

以下我们将一个字符串按ISO-8859-1字符集进行转换为gbk,代码例如以下:

public static String formatStr(String str){if(str==null || str.length()==0){return "";}try{return new String (str.getBytes("ISO-8859-1"),"gbk"); //先在网络中以ISO-8859-1进行编码。再以gbk输出到终端}}

总结:归根结底,解决中文乱码仅仅须要两个步骤:

·使用getBytes(“编码方式”);来对汉字进行重编码。得到它的字节数组。

·再使用new String (Bytes[],”解码”);解码相应的字节数组。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117702.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 五个优秀的硬盘检测工具[通俗易懂]

    五个优秀的硬盘检测工具[通俗易懂]虽然硬盘价格不断大幅跳水,但它显然一直是我们最宝贵的资产,硬盘一旦损坏,所有下载的音乐、铃声、软件,工作的文档、报表、模型、图片都不复存在。本文介绍五个最好的硬盘检测工具,它们各有特色,有的可以监视局

    2022年7月4日
    41
  • PCI和PCIE插槽有什么区别?[通俗易懂]

    PCI和PCIE插槽有什么区别?[通俗易懂]PCI是PeripheralComponentInterconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型,在目前流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽,可见其应用的广泛性。PCI是由Intel公司1991年推出的一

    2022年6月29日
    63
  • web面试题及答案_前端html面试题

    web面试题及答案_前端html面试题阅读目录html/cssjavascriptes6vuereactjQuerywebpack、gulp、gruntnodehttpweb安全前端性能浏览器算法相关设计模式正则表达式职业规划参考资料html/css行内元素和块级元素举几个例子?行内元素:span,a,var,em,input,img,img,textarea,var,em,s……

    2022年8月29日
    9
  • JAVA基于dom4j实现对XML操作「建议收藏」

    JAVA基于dom4j实现对XML操作「建议收藏」该篇博客写java基于dom4j来操作xml的一些基本实现,需要用到以下jar包该篇博客目录1、XML特点、语法规则2、XML与HTML区别3、基于dom4j下java实现对XML基本操作一、XML特点、语法规则1、XML特点XML是一种标记语言,很类似HTMLXML的设计宗旨是传输数据,而非显示数据(HTML)XML标签没…

    2022年7月14日
    20
  • 怪盗基德的滑翔翼(最长上升子序列)「建议收藏」

    怪盗基德的滑翔翼(最长上升子序列)「建议收藏」最长上神子序列(nlogn)原题链接怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置也被柯南踢出的足球破坏了。不得已,怪盗基德只能操作受损的滑翔翼逃脱。假设城市中一共有N幢建筑排成一条线,每幢建筑的高度各不相同。初始时,怪盗基德可以在任何一幢建筑的顶端。他可以选择一个

    2022年8月8日
    3
  • 香港免备案服务器是合法的吗?「建议收藏」

    香港免备案服务器是合法的吗?不管是否使用过香港服务器的用户,应该都听说过香港服务器可以不用备案,虽然大多数用户不太清楚香港服务器为什么不用备案,但知道香港服务器免备案是合法的就足够了,我在这里将说明关于香港服务器免备案的一切疑问。所谓的网站备案是指的根据国家互联网的规定,网站所有者必须向国家工信部申请网站内容审核和实名备案,有的网站还需要向当地的公安部进行监管备案,所有放在国内服务器上的网站只能通过备案才能访问上线。1、香港服务器为什么不用备案?  这主…

    2022年4月13日
    64

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号