- 浏览: 241886 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
huangtut:
popdyc 写道请问作者有没有遇到过Intellij 插件开 ...
IntelliJ 9 插件开发 -
popdyc:
请问作者有没有遇到过Intellij 插件开发中用Runtim ...
IntelliJ 9 插件开发 -
ggd543:
好文,收藏
IntelliJ 9 插件开发 -
fengwei199181:
不错哦。
Groovy 学习 (整理修改自精通Groovy) -- Groovy 介绍与插件的安装 -
zhengweisincere:
我的评论呢?
通过分析SQL语句的执行计划优化SQL(总结)
出处:http://blog.sina.com.cn/s/blog_3f4dc73b0100afub.html
在JAVA中,一个char是2个字节(byte),而一个中文汉字是一个字符,也是2个字节。所以可以把汉字赋值给char。而英文字母都是一个字节的,因此它也能保存到一个byte里,一个中文汉字却不能。
char型字符单独在输出语句时,输出它的字符本身,与+相连时,输出它的ASCII码值。
UTF-16BE和UTF-16LE是UNICODE编码家族的两个成员。UNICODE标准定义了UTF-8、UTF-16、UTF-32三种编码格式,共有UTF-8、UTF-16、UTF-16BE、UTF-16LE、UTF-32、UTF-32BE、UTF-32LE七种编码方案。JAVA所采用的编码方案是UTF-16BE。
字符编码例:
运行结果如下:
字符截取例:
输出结果:
运行结果:
在JAVA中,一个char是2个字节(byte),而一个中文汉字是一个字符,也是2个字节。所以可以把汉字赋值给char。而英文字母都是一个字节的,因此它也能保存到一个byte里,一个中文汉字却不能。
char型字符单独在输出语句时,输出它的字符本身,与+相连时,输出它的ASCII码值。
UTF-16BE和UTF-16LE是UNICODE编码家族的两个成员。UNICODE标准定义了UTF-8、UTF-16、UTF-32三种编码格式,共有UTF-8、UTF-16、UTF-16BE、UTF-16LE、UTF-32、UTF-32BE、UTF-32LE七种编码方案。JAVA所采用的编码方案是UTF-16BE。
字符编码例:
import java.io.UnsupportedEncodingException; public class EncodeTest { public static void printByteLength(String s, String encodingName) { System.out.print("字节数:"); try { System.out.print(s.getBytes(encodingName).length); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } System.out.println(";编码:" + encodingName); } public static void main(String[] args) { String en = "A"; String ch = "人"; // 计算一个英文字母在各种编码下的字节数 System.out.println("英文字母:" + en); EncodeTest.printByteLength(en, "GB2312"); EncodeTest.printByteLength(en, "GBK"); EncodeTest.printByteLength(en, "GB18030"); EncodeTest.printByteLength(en, "ISO-8859-1"); EncodeTest.printByteLength(en, "UTF-8"); EncodeTest.printByteLength(en, "UTF-16"); EncodeTest.printByteLength(en, "UTF-16BE"); EncodeTest.printByteLength(en, "UTF-16LE"); System.out.println(); // 计算一个中文汉字在各种编码下的字节数 System.out.println("中文汉字:" + ch); EncodeTest.printByteLength(ch, "GB2312"); EncodeTest.printByteLength(ch, "GBK"); EncodeTest.printByteLength(ch, "GB18030"); EncodeTest.printByteLength(ch, "ISO-8859-1"); EncodeTest.printByteLength(ch, "UTF-8"); EncodeTest.printByteLength(ch, "UTF-16"); EncodeTest.printByteLength(ch, "UTF-16BE"); EncodeTest.printByteLength(ch, "UTF-16LE"); } }
运行结果如下:
英文字母:A 字节数:1;编码:GB2312 字节数:1;编码:GBK 字节数:1;编码:GB18030 字节数:1;编码:ISO-8859-1 字节数:1;编码:UTF-8 字节数:4;编码:UTF-16 字节数:2;编码:UTF-16BE 字节数:2;编码:UTF-16LE 中文汉字:人 字节数:2;编码:GB2312 字节数:2;编码:GBK 字节数:2;编码:GB18030 字节数:1;编码:ISO-8859-1 字节数:3;编码:UTF-8 字节数:4;编码:UTF-16 字节数:2;编码:UTF-16BE 字节数:2;编码:UTF-16LE
字符截取例:
import java.io.UnsupportedEncodingException; public class CutString { public static void main(String[] args) throws UnsupportedEncodingException { String s = "我ZWR爱JAVA"; // 获取GBK编码下的字节数据 byte[] data = s.getBytes("GBK"); byte[] tmp = new byte[6]; // 将data数组的前六个字节拷贝到tmp数组中 System.arraycopy(data, 0, tmp, 0, 6); // 将截取到的前六个字节以字符串形式输出到控制台 s = new String(tmp); System.out.println(s); } }
输出结果:
我ZWR? 例2: import java.io.UnsupportedEncodingException; public class CutString { public static boolean isChineseChar(char c) throws UnsupportedEncodingException { // 如果字节数大于1,是汉字 // 以这种方式区别英文字母和中文汉字并不是十分严谨,但在这个题目中,这样判断已经足够了 return String.valueOf(c).getBytes("GBK").length > 1; } public static String substring(String orignal, int count) throws UnsupportedEncodingException { // 原始字符不为null,也不是空字符串 if (orignal != null && !"".equals(orignal)) { // 将原始字符串转换为GBK编码格式 orignal = new String(orignal.getBytes(), "GBK"); // 要截取的字节数大于0,且小于原始字符串的字节数 if (count > 0 && count < orignal.getBytes("GBK").length) { StringBuffer buff = new StringBuffer(); char c; for (int i = 0; i < count; i++) { // charAt(int index)也是按照字符来分解字符串的 c = orignal.charAt(i); buff.append(c); if (CutString.isChineseChar(c)) { // 遇到中文汉字,截取字节总数减1 --count; } } return buff.toString(); } } return orignal; } public static void main(String[] args) { // 原始字符串 String s = "我ZWR爱JAVA"; System.out.println("原始字符串:" + s); try { System.out.println("截取前1位:" + CutString.substring(s, 1)); System.out.println("截取前2位:" + CutString.substring(s, 2)); System.out.println("截取前4位:" + CutString.substring(s, 4)); System.out.println("截取前6位:" + CutString.substring(s, 6)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } }
运行结果:
原始字符串:我ZWR爱JAVA 截取前1位:我 截取前2位:我 截取前4位:我ZW 截取前6位:我ZWR爱
发表评论
-
spring
2011-07-11 13:49 784SPRING 2.5 API 中文在线 备忘 http://a ... -
转:Tomcat免重启随意更改java代码 提高开发效率
2011-05-19 17:31 1308原文地址:http://blog.chinaacc.com/w ... -
转:Java远程通讯可选技术及原理
2011-05-10 17:33 1184原文地址:http://java.chinai ... -
转:Hessian 原理分析
2011-05-10 17:01 4184原文:http://blog.csdn.net/zhtang0 ... -
另一种遍历Map的方式: Map.Entry 和 Map.entrySet() (转)
2010-06-11 17:13 2431今天看Think in java 的GUI这一章的时候,里面的 ... -
(转载)什么是线程?
2010-03-18 14:56 1022什么是线程?2007年06月01日 星期五 09:19线程是程 ... -
Java 内存机制
2009-07-08 12:50 918java中内存分配策略及堆 ... -
JAVA中多种计时器的比较与分析
2009-06-09 14:57 4148介绍 计时器可以提供运行基于时间的工作任务的功能,在计时器 ... -
正确使用 Volatile 变量
2009-05-19 09:31 814Java™ 语言包含两种内 ... -
servlet2.5/jsp2.1的新特征(转载)
2009-04-23 15:03 1036005年9月26日,Sun公司和JSR154的专家组发布Ser ... -
ThreadLocal的设计与使用(原理篇
2009-04-22 10:57 773ThreadLocal的设计与使用(原理篇) ... -
企业系统管理体系 用J2EE架构企业级应用(3)
2009-04-09 21:39 994J2EE的各种组件 我们就J2EE的各种组件、服务和AP ... -
企业系统管理体系 用J2EE架构企业级应用(2)
2009-04-09 21:34 1346企业级资源连接 ... -
企业系统管理体系 用J2EE架构企业级应用(1)
2009-04-09 21:27 1063企业级应用是指那些 ... -
对比XStream和JSON
2009-03-30 20:04 1294XStream是thoughtworks开发的开源产品,采用的 ... -
Java 设计原则
2009-03-29 13:13 12681. ”开-闭”原则 (Open-Close Principl ... -
Martin Fowler:持续集成
2008-12-04 16:17 1002本文原文链接:http://martinfowler.com/ ... -
十个最好的Java性能故障排除工具
2008-12-01 16:09 1250推荐十个最好的Java性能故障排除工具:1.jconsole是 ... -
转:JDK5.0 新特性--泛型
2007-07-25 15:22 1484JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为 ... -
转:Eclipse快捷键 Template用法探讨
2007-07-23 13:34 2739Eclipse Template用法探讨 在编码的过程中,对 ...
相关推荐
### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理国际化应用时,理解并掌握各种字符编码格式变得尤为重要。下面将介绍几种常见的字符编码格式以及如何在Java中实现...
### Java字符串编码转换详解 #### 一、Java 字符串编码转换基础 在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web...
不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);
总的来说,Java中获取字符串编码类型没有一个直接的标准方法,开发者需要借助一些技巧和外部库来实现。在处理编码问题时,理解各种编码格式的特性以及它们之间的差异至关重要,这样才能有效地避免乱码问题,保证数据...
在Java编程语言中,字符串是极其重要且常用的数据类型,尤其在Android开发中更是不可或缺。字符串主要用于处理文本信息,如用户输入、文件内容、网络数据等。以下是对"JAVA 字符串应用笔记"中可能涉及的一些核心知识...
通过解析字符串获取字符串编码类型的java代码
要获取Java字符串的字节序列(即编码),可以使用`getBytes()`方法。此方法默认使用平台的默认编码,通常为UTF-8,但也可以指定其他编码,如`getBytes("GBK")`。如果需要确定字符串的原始编码,需要额外的信息,...
在Java编程语言中,将字符串转换为16进制ASCII值是一个常见的操作,尤其是在处理数据编码、网络通信或存储时。这个过程涉及到字符到数字的...理解这些概念和方法,对于在Java开发过程中处理字符串编码问题至关重要。
总结了java中常见的utf-8、gbk等进行字符串编码转换
字符串与各种编码之间相互转换,例如:字符串转base64,字符串转十六进制等等
Java字符串编码查询及转换,可将常用的一些编码格式转换成utf-8
JAVA字符串操作类CTool.java字符转换类,此类中收集Java编程中WEB开发常用到的一些工具。为避免生成此类的实例,构造方法被申明为private类型的。封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5...
这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...
在Java编程语言中,字符串(String)是至关重要的数据类型,用于处理文本信息。字符串是不可变的,这意味着一旦创建,就不能更改其...通过学习和实践这些示例,开发者可以更好地掌握Java字符串操作的技巧,提升编程能力。
标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...
在Java中,字符编码转换...总之,了解和掌握Java中的字符串编码转换方法,对于开发跨平台的应用程序和处理多语言数据具有重要意义。通过恰当的编码转换机制,可以确保数据的正确显示和处理,避免乱码等常见的编码问题。
在 Java 中,我们可以使用 `encode` 函数将字符串编码为 16 进制字符串。该函数接受一个参数 str,即字符串,然后将其编码为 16 进制字符串。 ```java public static String encode(String str) { byte[] bytes=...
在Java编程语言中,处理字符串是非常常见的操作,尤其是在涉及到文本分析和处理的场景。本文将深入探讨如何在Java中进行中文...在Java中处理字符串,特别是涉及到特殊字符集如中文时,对字符编码的理解是必不可少的。
### Java处理字符和字符串知识点详解 #### 一、概述 在Java编程中,字符和字符串是最常见的数据类型之一。为了方便高效地处理这些数据类型,Java提供了强大的支持,包括`Character`类和`String`类等。这些类位于`...