1.原理
String username = req.getParameter("username");
username = new String(username.getBytes("iso-8859-1
"), "GB18030
");
我们本应该用GB18030的编码来读取数据并解码成字符串,但结果却采用了ISO-8859-1的编码,导致生成一个错误的字符串。要恢复,就要先把字
符串恢复成原始字节数组,然后通过正确的编码GB18030再次解码成字符串(即把以GB18030编码的数据转成unicode的字符串)。注意,字符
串永远都是unicode编码的。
2.例子
new String(input.getBytes("ISO-8859-1"), "UTF-8")
如input为读取文件a.txt包含中文的内容,经过测试,以上语句只有满足
1, a.txt使用UTF-8编码
(即数据的本来编码
)
2, JVM的编码为ISO-8859-1,即Charset.defaultCharset()=ISO-8859-1 (即读取时采用的默认编码
)
中文内容显示正常,但对编码问题大家还是可以多多发表自己的看法。
分享到:
相关推荐
在IT行业中,ASN.1(Abstract Syntax Notation One)是一种标准化的数据表示语言,常用于通信协议、数据存储和软件...学习和理解ASN.1以及相关的Java库是进行此类操作的关键,这有助于确保数据的正确解析和有效利用。
这个文件可能包含C、C++、Java或其他编程语言的示例代码,展示了如何将ASN.1定义的结构转换为PER编码的字节流,以及如何从PER编码还原原始数据。代码实现通常会包含编码函数和解码函数,以及辅助函数,如计算数据...
本文将详细介绍`org.dtools.javaini-v1.1.0.jar`,这是一个专为Java设计的,用来处理INI配置文件的库,特别之处在于它经过修改后,增加了对UTF-8编码的支持。 原始的`org.dtools.javaini`库最初设计时仅支持ASCII...
电力电表376.1协议是电力行业中广泛...综上所述,电力电表376.1协议Java版的实现是一个涵盖协议解析、数据通信和系统集成等多个方面的技术任务,对于电力行业软件开发人员来说,理解和掌握这一协议的Java实现至关重要。
开发者可以通过编写Java代码来实现对ANS.1数据的序列化和反序列化。这通常涉及到以下步骤: 1. **序列化**: 将Java对象转换为ANS.1编码的字节流。这包括将对象的属性映射到ANS.1数据类型,并按照ANS.1的规则进行...
【标题】:“Java编码总结1”主要涉及到Java编程语言中的编码问题,这在软件开发中是至关重要的。编码问题往往会导致程序出现难以预料的错误,尤其是处理多国语言或者特殊字符时。Java作为广泛使用的跨平台语言,其...
### Java编码规范详解 #### 一、为什么要制定编码规范? 代码规范对于软件开发的重要性不容忽视。良好的代码风格不仅能提升代码的可读性,还能增强代码的健壮性,并减少因修改代码而引入错误的可能性。特别是在...
Java解析ASN.1文件主要涉及的是对ASN.1(Abstract Syntax Notation One)编码规则的理解和使用,这是一种在通信协议、数据存储等领域广泛使用的标准化表示法。ASN.1定义了一种高级的数据表示语言,用于描述数据结构...
"java编码规范考试题答案" 一、Java编码规范考试题答案 本文档涵盖了Java编码规范的各种方面,包括集合类、线程、对称密码算法、异常处理、命名规范、随机数生成、压缩文件解压、安全编程规范、操作系统登录用户名...
Ambler对Java编码规则进行了详细的介绍和解释,并提供了许多实际案例和经验总结。该白皮书的内容涵盖了Java编码的各个方面,包括变量命名、代码格式、注释、错误处理、安全性、性能优化等等。 Java编码规则的重要...
1. **命名规范**:阿里巴巴 Java 编码指南强调了清晰、一致的命名规则。类名应全大写,使用驼峰式命名(如 MyClass)。方法名和变量名应首字母小写,同样采用驼峰式命名(如 myMethod)。常量应全大写,单词间用...
JAVA 编码规范是指导开发人员编写高质量、可读性...综上所述,JAVA编码规范是开发过程中不可或缺的一部分,它涵盖了从文件结构到代码细节的方方面面,旨在提升代码质量,确保团队合作的顺畅,同时降低长期维护的成本。
### ASN.1编码规则详解 #### 1. ASN.1简介 ##### 1.1 ASN.1概述 ASN.1(Abstract Syntax Notation One)是一种国际...通过对ASN.1及其编码规则的深入了解,我们可以更好地理解和应用这一强大的数据描述和传输机制。
以下是对Java编码相关知识点的详细说明: 1. **Java语法基础**:Java是一种面向对象的语言,其语法结构包括类、对象、包、接口、继承、多态等概念。基础语法包括变量声明、数据类型(如整型、浮点型、字符串型等)...
本压缩包“java编码规范.zip”提供了华为版的编码规范和一个详细的Java代码规范版本,旨在帮助开发者遵循一致的规则,编写出易于阅读、维护的高质量代码。 首先,我们来看华为版的Java编码规范。华为作为全球知名的...
因此,理解各种编码之间的关系,以及如何在Java中有效地进行转换,对于开发跨平台的软件尤其关键。 最后,虽然这个示例代码没有涵盖所有可能的编码转换情况,但它提供了一个基础框架,可以根据需要扩展以支持更多...
### Java编码规范精简版本知识点解析 #### 一、为何制定编码规范? 1. **维护成本**: 软件在其整个生命周期中,大约80%的成本都集中在维护阶段。因此,良好的编码规范能够显著降低这部分成本。 2. **人员变动**: ...
总之,Java中的TLV编码和解码涉及到数据结构的表示和转换,熟悉这种编码方式对于理解和处理通信协议、序列化数据等方面都有很大帮助。结合`ber-tlv`资源,开发者可以快速地在Java项目中实现自己的TLV处理功能。
在这个Java代码实现中,我们首先需要理解香农编码的几个关键步骤: 1. **计算概率**:对于输入的信号,我们需要知道每个符号出现的概率。这是香农编码的基础,因为编码长度将根据这些概率来确定。 2. **构建哈夫曼...