中文字符集

合集下载

常用的中文字符编码

常用的中文字符编码

常用的中文字符编码
常用的中文字符编码有以下几种:
1. GB2312:是中国国家标准简体中文字符集,共收录了6763个汉字。

GB2312是最早的汉字字符集,主要用于简体中文的编码。

2. GBK:是GB2312的扩展字符集,共收录了21886个汉字。

GBK 支持繁体中文字符和少数民族文字。

GBK是目前最常用的中文字符编码。

3. GB18030:是GB2312和GBK的升级版字符集,共收录了27533个汉字。

GB18030支持所有中国少数民族文字,并且还包含了Unicode
3.0的全部字符。

4. UTF-8:是一种以Unicode为基础的字符编码,采用可变长度的编码方式,支持全球范围内几乎所有的字符。

UTF-8是互联网上最常用的字符编码,也是目前推荐使用的中文字符编码。

除了上述字符编码,还有一些其他的字符编码,如Big5(主要用于繁体中文)、ISO-8859-1(用于西欧字符集)等,但在日常使用中较少见。

中文字符集和中文编码 阿四的日志

中文字符集和中文编码  阿四的日志

中文字符集和中文编码阿四的日志中文字符集和中文编码Posted on 八月10, 2011 by ashi 编码(encoding)指的是把某种信息表示成某种形式的过程。

像我们的语言就是一种编码过程,把信息化成文字,声音等语言要素的过程。

这里所谈到的编码是指把语言变成计算机可以识别的信息的过程。

这个过程纷繁复杂,再加上中文字符本身的特点(比英语字符表示上要复杂),发展出来了许多标准,如果没有一个较好的模型(简单说就是一个分层次的概念),很容易把人搞头大。

比如说光看wikipedia上对GB2312,GBK,GB18030,Big5,USC,Unicode,EUC,EUC-CN ,EUC-TW,CP936,CP950,UTF-8,UTF-16,UCS-4,UCS-2等等的名词解释,很难清晰的看到他们之间的关系,也就很难理解这个编码问题。

分层的概念上面说了这个所谓的编码(encoding)是指把语言变成计算机可以识别的信息的过程。

如果把这里的语言简化成所有的中文字,把计算机可以识别的信息简化成2进制数字。

那编码就是找一个把中文字映射成2进制数字的映射的过程。

当然实际上这个过程还是要繁杂一些,下文中我想结合中文编码详细说说我的理解,不当之处见谅。

首先介绍一个分层模型,这个模型在文献Whistler and Davis (2000) 和Dürst et al (2001)中有详细的说明。

原来的模型有5个层次,我觉得取其中的三个层次作介绍就足够我们理解编码了。

这三个层次分别为:一、抽象字符集(Abstract character repertoire ),简称ACR,二、编码后的字符集(Coded character set),简称CCS,二、字符编码形式(Character encoding form),简称CEF。

这个翻译肯定不够恰当,大家尽量以原文的意思去理解它。

ACR是就是指一些字符的集合,里边的字符也没有排序,通俗的说,所有简体中文字符就是一个ACR,所有英文字符也是一个ACR,ACR与GB2312之类的名词之间没有对应,这儿提到只是帮助理解。

中文转换字符集的方式

中文转换字符集的方式

中文转换字符集的方式
在计算机领域中,中文字符集的转换是一个重要的技术。

随着
全球化的发展,不同国家和地区使用不同的字符集来表示他们的语
言和文字。

为了在不同的系统和平台上正确显示和处理中文字符,
需要进行字符集的转换。

常见的中文字符集包括GBK、UTF-8、UTF-16等。

在进行字符集
转换时,需要考虑字符编码、字符集间的对应关系以及字符集转换
的算法等因素。

通过合适的转换工具和技术,可以实现不同字符集
之间的相互转换,确保中文字符在不同系统和平台上的正确显示和
处理。

在实际应用中,中文字符集的转换涉及到多方面的技术和知识,需要综合考虑字符编码、文本处理、系统兼容性等因素。

只有深入
理解字符集转换的原理和方法,才能有效地处理中文字符集转换的
相关问题,确保中文信息在不同环境中的正常传递和处理。

总之,中文字符集的转换是一个复杂而重要的技术,对于计算
机领域和信息技术而言具有重要意义。

通过不断的学习和实践,我
们可以更好地掌握中文字符集转换的技术,为中文信息的传递和处理提供更加可靠和高效的支持。

汉字编码字符集

汉字编码字符集

汉字编码字符集汉字编码字符集是指用于表示和存储汉字的一套编码系统。

在计算机领域,为了能够准确地表示和处理汉字,人们设计了多种不同的汉字编码字符集。

本文将介绍几种常见的汉字编码字符集,包括GB2312、GBK、Unicode以及UTF-8。

一、GB2312GB2312是中国国家标准局于1980年发布的一种汉字编码字符集,是最早被广泛使用的汉字字符集之一。

GB2312字符集包含了7445个汉字和682个非汉字字符,采用双字节表示每个字符。

其中,第一个字节的范围是0xB0至0xF7,第二个字节的范围是0xA1至0xFE。

GB2312字符集主要适用于简体中文。

二、GBK随着计算机技术的发展和汉字数量的增加,GB2312字符集的容量已经无法满足需求。

为了解决这个问题,国家标准局于1995年发布了GBK字符集,它是对GB2312字符集的扩充和改进。

GBK字符集兼容GB2312字符集,同时加入了21003个汉字,总计包含了21886个汉字。

GBK字符集同样采用双字节表示每个字符,第一个字节的范围是0x81至0xFE,第二个字节的范围是0x40至0xFE。

GBK字符集支持简体中文和繁体中文。

三、UnicodeUnicode是一种国际标准字符集,旨在为全球所有字符提供唯一的编码。

Unicode采用16位的编码方案,可以支持最多65536个不同的字符。

不仅包括了各个国家语言的文字,还包括了数学符号、技术符号、图形符号等。

Unicode字符集为各种语言的文字提供了一个统一的编码标准。

四、UTF-8UTF-8是一种可变长度的Unicode编码方案,更好地解决了存储效率和兼容性的问题。

UTF-8使用1至4个字节来表示一个字符,根据不同的字符而变化。

对于单字节的字符,编码和ASCII码相同,兼容ASCII码。

对于多字节的字符,第一个字节的高位标识了字节数。

UTF-8字符集可以表示Unicode字符集中的所有字符。

在计算机系统中,为了使不同的系统能够正确地处理汉字编码,一般需要统一选择一种字符集来使用。

0 Windows常用中文字符集set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

0 Windows常用中文字符集set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
1. NLS_LANG 参数组成
NLS_LANG参数由以下部分组成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>
NLS_LANG各部分含义如下:
LANGUAGE指定:
-Oracle消息使用的语言
-日期中月份和日显示
TERRITORY指定
-货币和数字格式
-地区和计算星期及日期的习惯
CHARACTERSET:
-控制客户端应用程序使用的字符集
通常设置或者等于客户端(如Windows)代码页
或者对于unicode应用设置为UTF8
在Windows上查看当前系统的代码页可以使用chcp命令:
E:\>chcp
活动的代码页: 936
[Q]怎么样修改字符集
[A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。
Startup nomount;
Alter database mount exclusive;
Alter system enable restricted session;
Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多个ORACLE_HOME时系统编号。
ቤተ መጻሕፍቲ ባይዱ3. 查看数据库当前字符集参数设置
SELECT * FROM v$nls_parameters;
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,

中文字符集的编码

中文字符集的编码

中文字符集的编码
中文字符集的编码标准有很多,其中最常见的是GB2312、GBK、
GB18030和UTF8。

这些编码标准主要用于处理中文字符在计算机中的表
示和存储。

GB2312,全称《信息交换用汉字编码字符集·基本集》,是中国国家强制
标准,包含了6763个常用汉字和非汉字字符。

该标准的字符集是分为两个区的,其中01-09区是特殊符号区,16-55区是一级汉字区,56-87区是
二级汉字区。

GBK是在GB2312的基础上扩大了更多汉字,支持繁体中文和部分其他语
言字符。

GB18030则是更全面的中文字符集,可以表示超过七万字,并且包括了许多不常见的汉字。

UTF8是一种变长字节表示的Unicode字符集,可以用来表示任何Unicode标准中的字符,包括中文字符。

总的来说,不同的编码标准适用于不同的应用场景,因此在处理中文字符时,需要根据实际需求选择合适的编码标准。

中文字符集、编码

中文字符集、编码

前言由于工作的需要,参考了好多资料整理出来一份计算机汉字处理报告,不敢独享,希 望与大家共享。

Ziggler 现代计算机技术虽然先进, 但大多数人只知录入 GB-2313 字符集内的 6763 个简体汉字, 对包含 21003 个简繁体汉字的 GBK 字符集的文字录入、字体 显示就已不甚了解(市面上 绝大多数所谓的繁体字体,其实采用的是 GB2313 字符集简体字的编码,用字体显示为繁体 字,而不是直接用 GBK 字符集中繁体字 的编码,错误百出) 。

而汉字总数至少有近 10 万 个,目前计算机能处理的,也有 70244 个,已非一般人所能知能用了。

由于汉字总数非常庞大。

汉字总共有多少字?到目前为止, 恐怕没人能够答得上来精确 的数字。

据估计,汉字数量达到 11 万左右。

这里所说的七万多汉字, 是指 UNICODE 超大字集全部七万多中日韩汉字。

(注: Unicode 是指用两个字节表示每个字符的字符编码方案。

) 那一般计算机能够显示多少个汉字呢?比如大陆这边普遍安装简体 Windows 系统,而 简体 windows 以宋体为系统字型,宋体支持 GBK 编码,所以能显示 20902 个汉字。

要显示 71564 个汉字, 可以采取多种方案, 如: 宋体-方正超大字符集+新细明体 EXTB、 宋体-方正超大字符集+中易宋体 EXTB、宋体 GB18030+新细明体 ExtB、宋体 18030+宋体 ExtB 等等。

中文字符集、编码字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

字符 集是多个字符的集合,字符集 种类较多,每个字符集包含的字符个数不同。

计算机要准确的处理各种字符集文字, 需要进行字符编码, 以便计算机能够识别和存储 各种文字。

中文文字数目大, 而且还分为简体中文和繁体中文两种不同书写规则的文字, 而计算机 最初是按英语单字节字符设计的, 因此, 对中文字符进行编码, 是中文信息交流的技术基础。

常用的中文编码

常用的中文编码

常用的中文编码一、引言在计算机领域,中文编码起着至关重要的作用。

无论是输入、输出、存储还是网络传输,都离不开编码的转换。

为了让计算机能够识别和处理中文,我国制定了多种中文编码标准。

接下来,我们将详细介绍几种常用的中文编码,以便大家更好地理解和应用。

二、常用的中文编码概述1.GBK编码GBK(全称为:汉字内码扩展规范)是我国制定的一种汉字编码标准。

它兼容GB2312编码,可以表示大部分现代汉字。

GBK编码的字符集分为两个部分:基本集和扩展集。

基本集包含了GB2312编码中的所有汉字,共计6763个;扩展集则增加了更多的汉字,共计21003个。

GBK编码在我国的政府部门、企事业单位以及众多软件中得到了广泛应用。

2.GB2312编码GB2312编码是我国最早制定的一种汉字编码标准,于1980年发布。

它包含了6763个汉字,主要覆盖了现代汉字的基本需求。

GB2312编码的字符集分为两个部分:基本集和辅助集。

基本集包含了6763个汉字,辅助集则包含了一些特殊符号和拉丁字母。

GB2312编码在我国历史上发挥了重要作用,如今在很多场合仍然可以看到它的身影。

3.BIG5编码BIG5编码(全称为:大五码)是台湾地区制定的一种汉字编码标准。

它包含了13068个汉字,主要覆盖了现代汉字和一些繁体字。

BIG5编码在台湾地区及其周边地区广泛应用,是许多台湾出版的书籍、软件和网站的标准编码。

在大陆地区,BIG5编码也逐渐被GBK和UTF-8编码所取代。

4.UTF-8编码UTF-8编码是一种国际通用的编码标准,可以表示世界上几乎所有的字符集,包括中文、英文、数字、特殊符号等。

UTF-8编码具有兼容性、高效性和扩展性等优点,成为了互联网上最常用的编码之一。

许多国际化的软件和网站都采用UTF-8编码作为默认的字符集。

在我国,UTF-8编码也逐渐成为了一种重要的编码选择。

三、编码转换实例在日常生活中,我们可能会遇到不同编码之间的转换需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最近一直被这个字符集问题,弄的头疼。

想不到一个很好的办法去解决。

问题是这样的:“在超链接中传递参数的时候总是出现乱码”在Action中用debug查的时候就是乱码,在Tomcat 中把Service.xml将字符集改成UTF-8,GBK,GB2312都试过了,仍然没有解决这个问题。

很是郁闷!~~~
在现实工作中我们会经常遇到字符转换的问题:有的时候还会出现乱码.因为工作需要我从别人的静态网页上抓取数据.用到的方法是传一个uri进去,然后取出你所想得到的字符串.代码如下:
public static String getData(String url1) throws Exception {
String result = "";
URL url = new URL(url1);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.
getInputStream(),"UTF-8"));
//特别注意这里,后面的编码格式,一般都是用UTF-8,因为这是通用的.如果用汉字可以用GBK.不要用gb2312.因为它是GBK的子集.
String line;
while ( (line = in.readLine()) != null) {
result = result + "\n" + line;
}
in.close();
String html =replaceFunc2(replaceFunc2(result,"<?xml","<p>"),"</p>","</wml>");
return html;
}
public static String replaceFunc2(String str_source, String str_start,String str_end)
{
String info = "", rep_str = "", rep_str2 = "";
int startFlag = 0, endFlag = 0;
startFlag = str_source.indexOf(str_start);
endFlag = str_source.indexOf(str_end);
info = str_source;
if (startFlag >= 0 && endFlag >= 0 && startFlag < endFlag) {
rep_str = info.substring(0, startFlag);
rep_str2 = info.substring(endFlag + str_end.length());
info = rep_str + rep_str2;
}
// System.out.print("==========="+info+"==========");
return info;
}
这样我们取的时候就是强制它用UTF-8的格式从网页中读取出来,而不用它自己默认的编码方式(鬼知道它是用的什么编码格式,因为我是从aspx?xxx动态网页中取的,),听说有一种方法可以查出来它是用的什么编码方式,估计没多少人有这耐心去查.只要读取时用某种格式强制读取就可以,然后用相同的编码方式显示出来,一般没有什么问题.
还有一个就是听别人说的,如果还是出现乱码,哪就先把它转化成unicode格式(UTF-16),这种格式我原来没听说过,又学了一种格式,然后再转成UTF-8的格式.
下面是一些方法.从网上转来的:
网页写的中文不需要转换,写上你那行就可以显示中文了。

凡从jsp传出带中文值的参数,都需要在接收后转换中文<%@ page contentType="text/html; charset=GB2312"%> 是要在本页显示中文的时候才写。

它不能完成转换中文的功能。

中文问题是java世界里面一个比较麻烦的问题,说麻烦是因为涉及面太宽,由数据库方面的,操作系统的,webserver的等等。

一般这个就可以了:
str = new String(str.getBytes("编码1"),"编码2");其中编码1是操作系统的默认编码,编码2是你要转换成的编码。

new String()里面的部分的意思是:把str转按照编码1的方式转换回byte[] 字节流,然后按照编码2的方式再转换成新的str。

(str是一个字符串,java里面其实是char[])。

str = new String(str.getBytes(),"编码2");编码1省略也是可以的,会按照操作系统的默认编码来转换。

其中编码2一般为gb2312,也就是中文,但是推荐用gbk,因为gb2312其实是gbk的一个子集,字库要小一些。

utf-8应该也可以,是较新的一种编码规则。

Java Servlets 2.3规范草案在ServletRequest接口中新增了一个方法setCharacterEncoding(String enc),可以补上在HTTP请求中缺少的charset信息,而上面这一烦琐的转换过程就在Servlet引擎中自动完成了,而且Servlet引擎还对转换过程做了优化,提高了运行效率。

下面给出一个简单的例子,大家可以做一下比较。

// 传统方式
<%@ page contentType="text/html; charset=gb2312" %>
<html>
<body>
<form method=post action=test.jsp>
<input type=text name=your_name>
</form>
<%= new String(request.getParameter("your_name").getBytes("8859_1"), "GB2312") %>
</body>
</html>
// 新的方式
<%@ page contentType="text/html; charset=gb2312" %>
<% request.setCharacterEncoding("GB2312"); %>
<html>
<body>
<form method=post action=test.jsp>
<input type=text name=your_name>
</form>
<%= request.getParameter("your_name") %>
</body>
</html>
比较常用的SmartUpload中,可能不支持中文,需要修改:
response.setHeader("Content-Disposition","attachment;filename="+.URLEncoder.encode( (attachname,"utf-8/iso-8895-1/gb2312")));将attachname编码格式修改才可以使得在弹出的下载确认框中显示中文
一般来说可以有两个方法:
1.URLEncoder.encode(str,"utf-8");按utf-8编码输出
2.String temp=str;
str= new String(tempgetBytes(), "iso-8859-1");
当然这和你的系统编码有关系,一般建议使用utf-8编码。

当然,也不止上面两个方法,比如可以转换成gbk等,只要你熟悉你的字符串和系统的编码方式,如何转码就很容易了。

当然这两种方法都有些局限性,但一般情况下是够用了,对于跨操作系统,跨语言的环境,略微有些问题,这和你操作系统的字符库有关系。

希望跟我有着同样烦恼的兄弟们,能有些帮助~~~~。

相关文档
最新文档