- 浏览: 466814 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yuan_bin1990:
您好,请问下demo如何运行啊,准备研究研究,但不知道入口啊。 ...
ssh2(struts2+spring2.5+hibernate3.3)自动生成代码程序 -
luyulong:
[b][/b][i][/i][ ...
jQuery进度条插件 jQuery progressBar -
txin0814:
mark..
读取文件目录 -
vurses:
[align=center][color=red][size= ...
include 与 jsp:include区别 -
Roshan2:
http://lijiejava.iteye.com/blog ...
Spring AOP 入门实例
import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */ public static final String US_ASCII = "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ public static final String ISO_8859_1 = "ISO-8859-1"; /** 8 位 UCS 转换格式 */ public static final String UTF_8 = "UTF-8"; /** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 */ public static final String UTF_16BE = "UTF-16BE"; /** 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序 */ public static final String UTF_16LE = "UTF-16LE"; /** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 */ public static final String UTF_16 = "UTF-16"; /** 中文超大字符集 */ public static final String GBK = "GBK"; /** * 将字符编码转换成US-ASCII码 */ public String toASCII(String str) throws UnsupportedEncodingException{ return this.changeCharset(str, US_ASCII); } /** * 将字符编码转换成ISO-8859-1码 */ public String toISO_8859_1(String str) throws UnsupportedEncodingException{ return this.changeCharset(str, ISO_8859_1); } /** * 将字符编码转换成UTF-8码 */ public String toUTF_8(String str) throws UnsupportedEncodingException{ return this.changeCharset(str, UTF_8); } /** * 将字符编码转换成UTF-16BE码 */ public String toUTF_16BE(String str) throws UnsupportedEncodingException{ return this.changeCharset(str, UTF_16BE); } /** * 将字符编码转换成UTF-16LE码 */ public String toUTF_16LE(String str) throws UnsupportedEncodingException{ return this.changeCharset(str, UTF_16LE); } /** * 将字符编码转换成UTF-16码 */ public String toUTF_16(String str) throws UnsupportedEncodingException{ return this.changeCharset(str, UTF_16); } /** * 将字符编码转换成GBK码 */ public String toGBK(String str) throws UnsupportedEncodingException{ return this.changeCharset(str, GBK); } /** * 字符串编码转换的实现方法 * @param str 待转换编码的字符串 * @param newCharset 目标编码 * @return * @throws UnsupportedEncodingException */ public String changeCharset(String str, String newCharset) throws UnsupportedEncodingException { if (str != null) { //用默认字符编码解码字符串。 byte[] bs = str.getBytes(); //用新的字符编码生成字符串 return new String(bs, newCharset); } return null; } /** * 字符串编码转换的实现方法 * @param str 待转换编码的字符串 * @param oldCharset 原编码 * @param newCharset 目标编码 * @return * @throws UnsupportedEncodingException */ public String changeCharset(String str, String oldCharset, String newCharset) throws UnsupportedEncodingException { if (str != null) { //用旧的字符编码解码字符串。解码可能会出现异常。 byte[] bs = str.getBytes(oldCharset); //用新的字符编码生成字符串 return new String(bs, newCharset); } return null; } public static void main(String[] args) throws UnsupportedEncodingException { ChangeCharset test = new ChangeCharset(); String str = "This is a 中文的 String!"; System.out.println("str: " + str); String gbk = test.toGBK(str); System.out.println("转换成GBK码: " + gbk); System.out.println(); String ascii = test.toASCII(str); System.out.println("转换成US-ASCII码: " + ascii); gbk = test.changeCharset(ascii,ChangeCharset.US_ASCII, ChangeCharset.GBK); System.out.println("再把ASCII码的字符串转换成GBK码: " + gbk); System.out.println(); String iso88591 = test.toISO_8859_1(str); System.out.println("转换成ISO-8859-1码: " + iso88591); gbk = test.changeCharset(iso88591,ChangeCharset.ISO_8859_1, ChangeCharset.GBK); System.out.println("再把ISO-8859-1码的字符串转换成GBK码: " + gbk); System.out.println(); String utf8 = test.toUTF_8(str); System.out.println("转换成UTF-8码: " + utf8); gbk = test.changeCharset(utf8,ChangeCharset.UTF_8, ChangeCharset.GBK); System.out.println("再把UTF-8码的字符串转换成GBK码: " + gbk); System.out.println(); String utf16be = test.toUTF_16BE(str); System.out.println("转换成UTF-16BE码:" + utf16be); gbk = test.changeCharset(utf16be,ChangeCharset.UTF_16BE, ChangeCharset.GBK); System.out.println("再把UTF-16BE码的字符串转换成GBK码: " + gbk); System.out.println(); String utf16le = test.toUTF_16LE(str); System.out.println("转换成UTF-16LE码:" + utf16le); gbk = test.changeCharset(utf16le,ChangeCharset.UTF_16LE, ChangeCharset.GBK); System.out.println("再把UTF-16LE码的字符串转换成GBK码: " + gbk); System.out.println(); String utf16 = test.toUTF_16(str); System.out.println("转换成UTF-16码:" + utf16); gbk = test.changeCharset(utf16,ChangeCharset.UTF_16LE, ChangeCharset.GBK); System.out.println("再把UTF-16码的字符串转换成GBK码: " + gbk); String s = new String("中文".getBytes("UTF-8"),"UTF-8"); System.out.println(s); } } ------------------------------------------------------------------------------------------------------------------ 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()方法设置编码方式,读出的内容就是正确的了。 posted on 2008-03-27 15:03 Rabbit 阅读(16118) 评论(13) 编辑 收藏
发表评论
-
javascript 打印指定区域
2010-11-18 16:34 1585javascript网页html 打印指定区域在一张网页里面, ... -
MyEclipse 8.5 开发环境配置,汉化,Aptana2.0插件,SVN 插件,Flex Builder 3/4 插件安装
2010-10-26 14:27 1546MyEclipse 8.5 开发环境配置,汉化,Aptana2 ... -
java读取properties文件
2010-10-11 13:43 767使用J2SE API读取Properties文件的六种方法 1 ... -
dbcp基本配置和重连配置
2010-09-28 09:29 2663最近在看一些dbcp的相 ... -
JAVA实现文件转移
2010-09-28 09:26 947/** * //1.从旧文件拷贝内容到新文件 ... -
Properties读取类
2010-09-25 14:06 948package cn.feigme.util; ... -
JAVA读写ftp
2010-09-21 16:41 3540import java.io.DataInputStream; ... -
apache tomcat mysql负载均衡和集群
2010-09-14 10:30 1691前言:公司开发了一个网站,估计最高在线人数是3万,并发人数最多 ... -
Flash Builder 4 正式版序列号
2010-09-01 15:51 3980江湖上又出现新的FlashBuilder(Flex4)序列号: ... -
利用 org.apache.commons.io.FileUtils快速读写文件
2010-08-17 10:33 2725利用 org.apache.commons.io.FileUt ... -
netbeans常用快捷键
2010-08-10 16:26 9071、Application应用程序的 ... -
ERWIN7.1注册码
2010-06-23 12:15 1359终于找到ERWIN7.1注册码,也可在ERWIN7.2上注册。 ... -
Java压缩文件zip
2010-06-21 09:42 1137可以使用jdk提供的java.util.zip包的类来进行文件 ... -
文件资源操作
2010-06-16 21:52 10871.访问文件资源 假设有一个文件地位于 ... -
Java Regex To Use
2010-06-16 21:46 807Java代码 /** * 得到 ... -
Java Random and Java Disabuse
2010-06-16 21:46 1124一、Random 1、创建Random ... -
java 线程池
2010-06-16 21:44 11561)threadpool.xml Java代码 ... -
使用ThreadLocal,隔离多个线程之间的共享冲突
2010-06-16 21:29 1542早在Java 1.2推出之时,Java平台中就引入了一个新的 ... -
MyEclipse下开发Web Service
2010-06-16 21:28 1525开发环境 Sun Java 5+ ... -
jexcel使用
2010-06-16 21:23 1458Java代码 package excel.jx ...
相关推荐
### Java字符串编码转换详解 #### 一、Java 字符串编码转换基础 在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web...
Java字符串编码查询及转换,可将常用的一些编码格式转换成utf-8
总的来说,Java中获取字符串编码类型没有一个直接的标准方法,开发者需要借助一些技巧和外部库来实现。在处理编码问题时,理解各种编码格式的特性以及它们之间的差异至关重要,这样才能有效地避免乱码问题,保证数据...
总结了java中常见的utf-8、gbk等进行字符串编码转换
不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);
JAVA字符串操作类CTool.java字符转换类,此类中收集Java编程中WEB开发常用到的一些工具。为避免生成此类的实例,构造方法被申明为private类型的。封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5...
在Java编程语言中,将字符串转换为16进制ASCII值是一个常见的操作,尤其是在处理数据编码、网络通信或存储时。这个过程涉及到字符到数字的...理解这些概念和方法,对于在Java开发过程中处理字符串编码问题至关重要。
要获取Java字符串的字节序列(即编码),可以使用`getBytes()`方法。此方法默认使用平台的默认编码,通常为UTF-8,但也可以指定其他编码,如`getBytes("GBK")`。如果需要确定字符串的原始编码,需要额外的信息,...
字符串与各种编码之间相互转换,例如:字符串转base64,字符串转十六进制等等
### Java字符串取GBK与UNICODE编码及相互转换详解 #### 一、引言 在处理中文等非ASCII字符时,经常需要对字符串进行编码转换,尤其是GBK和Unicode之间的转换。本文将详细介绍如何在Java中实现字符串从GBK到Unicode...
在Java编程中,处理不同编码方式的字符串转换是一项常见的任务,尤其在处理来自不同系统或网络的数据时。本文将深入探讨如何使用Java实现这一过程,...通过不断的实践和学习,你将能够更好地应对各种编码转换的挑战。
字符串与字节之间的转换涉及到编码问题,如`getBytes()`和`new String(byte[], charset)`。Java默认使用平台的默认字符集,但应尽量明确指定如`getBytes("UTF-8")`。 以上内容是基于"JAVA 字符串应用笔记"可能涵盖...
在 Java 中,我们可以使用 `encode` 函数将字符串编码为 16 进制字符串。该函数接受一个参数 str,即字符串,然后将其编码为 16 进制字符串。 ```java public static String encode(String str) { byte[] bytes=...
在IT行业中,字符转换工具类是编程中常见的一种实用工具,尤其在处理字符串与各种编码格式之间转换时显得尤为重要。这个“字符转换工具类”似乎是一个专门为生成HTML源码而设计的工具,它包含了全面的源码实现,并且...
总之,16进制ASCII与字符串的相互转换是编程中基础但关键的操作,它涉及到字符编码、数据表示以及字符串处理等核心概念。理解并能熟练应用这些转换技巧,对于提升编程能力,特别是在处理二进制数据时,是非常有帮助...
在Java编程语言中,String类是处理文本字符串的核心类,而与各种进制字符之间的转换是常见的编程需求。本文将详细探讨Java中如何进行String与二进制、八进制、十进制以及十六进制之间的转换。 首先,我们要了解进制...
这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...
在Java编程中,将字符串转换成点阵字库显示是一种常见的需求,特别是在处理文本图形界面或者游戏开发时。点阵字库是一种将字符图形化表示的方式,它将每个字符用一系列像素点组成,每个点代表一个颜色(通常为黑白)...
在Java中,字符编码转换...总之,了解和掌握Java中的字符串编码转换方法,对于开发跨平台的应用程序和处理多语言数据具有重要意义。通过恰当的编码转换机制,可以确保数据的正确显示和处理,避免乱码等常见的编码问题。