`
hpjianhua
  • 浏览: 241807 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

String字符串字符编码转换

阅读更多
String newStr = new String(oldStr.getBytes(), "UTF-8");     
  
java中的String类是按照unicode进行编码的,当使用String(byte[] bytes, String encoding)构造字符串时,encoding所指的是bytes中的数据是按照那种方式编码的,而不是最后产生的String是什么编码方式,换句话说,是让系统把bytes中的数据由encoding编码方式转换成unicode编码。如果不指明,bytes的编码方式将由jdk根据操作系统决定。    
  
        当我们从文件中读数据时,最好使用InputStream方式,然后采用String(byte[] bytes, String encoding)指明文件的编码方式。不要使用Reader方式,因为Reader方式会自动根据jdk指明的编码方式把文件内容转换成unicode 编码。    
  
        当我们从数据库中读文本数据时,采用ResultSet.getBytes()方法取得字节数组,同样采用带编码方式的字符串构造方法即可。    
  
ResultSet rs;    
bytep[] bytes = rs.getBytes();    
String str = new String(bytes, "gb2312");    
  
不要采取下面的步骤。    
  
ResultSet rs;    
String str = rs.getString();    
str = new String(str.getBytes("iso8859-1"), "gb2312");    
  
        这种编码转换方式效率底。之所以这么做的原因是,ResultSet在getString()方法执行时,默认数据库里的数据编码方式为 iso8859-1。系统会把数据依照iso8859-1的编码方式转换成unicode。使用str.getBytes("iso8859-1")把数据还原,然后利用new String(bytes, "gb2312")把数据从gb2312转换成unicode,中间多了好多步骤。    
  
        从HttpRequest中读参数时,利用reqeust.setCharacterEncoding()方法设置编码方式,读出的内容就是正确的了。  
 
转:http://www.blogjava.net/rabbit/archive/2008/03/27/189009.html  
分享到:
评论

相关推荐

    java字符串的各种编码转换

    ### 字符编码转换方法 为了实现字符编码的转换,可以使用`changeCharset`方法。该方法接受一个源字符串和目标字符集名称作为参数,然后返回转换后的字符串。 ```java public String changeCharset(String str, ...

    C语言字符串转换为Python字符串的方法

    C语言字符串转换为Python字符串的方法 C语言字符串转换为Python字符串是指将...C语言字符串转换为Python字符串需要根据不同的编码方式和数据类型选择合适的方法,以确保正确地将C语言字符串转换为Python字符串对象。

    字符串数组转换成string类型的

    在编程领域,尤其是在使用C++、Java或C#等面向对象的语言时,经常需要将字符串数组转换为单一的string类型。这种操作在处理数据输入、输出或者格式化时非常常见。下面我们将详细讨论如何在不同语言中实现这个过程,...

    Java设置String字符串编码方法详解

    本文将深入探讨Java中设置String字符串编码的方法,帮助开发者更好地理解和使用这些功能。 首先,我们需要理解什么是字符编码。字符编码是将字符(如字母、数字和符号)与数字或二进制值关联的系统,例如ASCII、...

    TIA博途-字符转换为字符串以及截取字符串有效字符的具体方法示例.docx

    接下来,我们可以使用`CONCAT`函数或`STRING`构造函数将字符数组转换为字符串: ```scl ResultString := CONCAT(CharArray); // 或者 ResultString := STRING(CharArray); ``` 这样,`ResultString`就包含了'ABCDE'...

    常用字符串处理函数-求子字符串,字符串分割,编码转换.

    ### 常用字符串处理函数:求子字符串、字符串分割与编码转换 在现代编程语言如JavaScript中,字符串处理是日常开发中极为常见的任务之一。本文将深入探讨几个常用的字符串处理函数,包括如何求取子字符串、进行字符...

    string字符串含有大写字母将其中大写字母转为小写字母

    标题和描述中提到的问题,即“将含有大写字母的string字符串转为全小写字母”,是字符串处理中的一个基本操作,常见于数据清洗、文本分析或者用户输入的规范化等场景。下面我们将详细探讨这个问题,并给出具体的解决...

    如何将xml的String字符串转化标准格式的String字符串(jdom)

    然而,这些字符串可能由于各种原因(如编码问题、特殊字符未转义等)不符合标准的XML格式。在这种情况下,我们需要将非标准的XML字符串转换为标准格式。本篇文章将详细介绍如何使用JDOM库来实现这个过程。 首先,让...

    Android图片Bitmap和字符串String之间的相互转换

    要将其转换为String,通常是通过将Bitmap的像素数据编码成一个Base64或PNG/JPEG等格式的字符串。相反,从String恢复Bitmap,则需要解码这个字符串,还原成原始的图像数据。 1. Bitmap转String: - Base64编码:...

    java字符串编码转换

    ### Java字符串编码转换详解 #### 一、Java 字符串编码转换基础 在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web...

    c#中 base64字符串与普通字符串互转

    在C#中,我们可以使用`System.Convert`类的`ToBase64String`方法将普通字符串(UTF-8编码的字节数组)转换为Base64字符串。首先,我们需要将字符串转换为字节数组,然后进行编码。 ```csharp string plainText = ...

    C# 字符串编码转换器(源码)

    在IT领域,字符串编码转换是处理文本数据时的一项重要任务,尤其是在不同的系统或平台之间进行数据交换时。本文将深入探讨C#中的字符串编码转换,以及如何利用C#实现一个编码转换器。 C#是一种面向对象的编程语言,...

    C#字符串.HTML编码处理方式

    ### C#字符串与HTML编码处理方式 在C#开发中,处理从数据库获取的数据并绑定到Grid等控件时,可能会遇到数据中的HTML标签或特殊字符导致显示异常的问题。为了解决这一问题,通常需要对数据进行HTML编码处理。本文将...

    截取指定长度的字符串

    而在一些其他语言中,如Java,可能需要先将字符串转换为特定的字符编码(如UTF-8)再进行截取。 在实际应用中,我们可能还需要考虑一些边缘情况,例如当截取的长度超过了字符串的实际长度,这时通常会返回整个字符...

    Delphi中处理字符串的相关方法

    将默认string类型的字符串转换为unicode编码的字符串。dest参数指定了保存目的串的缓冲区位置 (2)widecharlentostring function widecharlentostring(source :pwidechar;sourcelen :integer) :string; 将sourcelen...

    android字符串和16进制转换

    在这里,`String.format()`和`BigInteger`用于将字符串转换为16进制,而`Base64.getDecoder().decode()`则用于将16进制字符串解码回原始的字节数组,再转化为字符串。 在实际应用中,你可能还会遇到其他复杂情况,...

    js对中文字符串进行gb2312编码解码

    对于一个GB2312编码的字符串,它会被转化为一系列16进制的数字对,通常用百分号(%)来分隔,例如“中国”编码后的形式是:“%D6%D0%B9%FA”。 在JavaScript中,我们可以使用内置的`escape()`和`unescape()`函数来...

    C# 字符串转十六进制串,16进制反向转回原字符串

    要将字符串转换为十六进制串,我们需要对字符串中的每个字符进行编码,然后将编码结果转换成十六进制字符串。C#提供了`BitConverter`类和`ToString`方法来完成这个任务: ```csharp public static string StringTo...

    16进制与字符串、字节数组之间的转换

    为了将一个字符串转换为十六进制表示,可以先将其编码为字节数组,再将每个字节转换为十六进制形式: ```csharp public static string StringToHexString(string str, Encoding encoding) { byte[] bytes = ...

    VB.NET 字符串与二进制间的转换

    例如,`Encoding.ASCII.GetBytes(str)`或`Encoding.UTF8.GetBytes(str)`将字符串按照指定编码转换为字节数组。 - **GetString()**: 反之,字节数组可以转换回字符串,如`Encoding.ASCII.GetString(bytes)`或`...

Global site tag (gtag.js) - Google Analytics