`

(转)日语的文字编码

    博客分类:
  • Work
阅读更多

http://blog.csdn.net/jackyren007/archive/2008/07/31/2743779.aspx

日语的文字编码 收藏

1、常用编码

日语的文字编码主要是Shift_JIS、EUC-JP、ISO-2022-JP这三种。

(1)Shift_JIS主要是Windows和Macintosh使用的文字编码。

Shift_JIS 的文字集合基本是按照JIS X 0208规定的。但实际上各个厂商各自进行扩展,包含了大量重复的、规格以外的文字。因此,Windows在本来的 Shift_Jis的文字集合之外,又增加了NEC扩展、IBM扩展所包含的文字。这种规格和实际情况的分歧长期存在,随着windows-31J的规格 化,混乱情况有所改善。

(2)EUC-JP是被Linux和Solaris广泛地使用的文字编码。

(3)ISO-2022-JP主要被Email使用的文字编码。 只使用7个bit,第8个bit不使用,所以不适合程序中的字符串处理,主要使用在网络中的数据交换中。
------------------------------------
2、Shift_JIS和Windows-31的不同点

Shift_JIS/Windows-31J → Unicode的映射
-----------------------------
JIS X 0208の文字    Shift_JIS/Windows-31Jのコード     Shift_JIS→Unicode     Windows-31J→Unicode 
-----------------------------
~ (1-33, WAVE DASH)     8160             U+301C         U+FF5E 
∥ (1-34, DOUBLE VERTICAL LINE)     8161         U+2016         U+2225 
- (1-61, MINUS SIGN)     817C             U+2212         U+FF0D 
¢ (1-81, CENT SIGN)     8191             U+00A2         U+FFE0 
£ (1-82, POUND SIGN)     8192             U+00A3         U+FFE1 
¬ (2-44, NOT SIGN)     81CA             U+00AC         U+FFE2 
IBM独自拡張                      ×         ○ 
NEC独自拡張                      ×         ○ 
-------------------------------------------------
用户自定义文字,被映射到Unicode的私用领域。

转换器        Shift_JIS范围     Unicode范围
------------------------------
Windows-31J     F040~F9FC     E000~E757 


Unicode → Shift_JIS/Windows-31J 的映射
--------------------------------------------
Unicodeの文字         Unicodeのコード         Shift_JIS         Windows-31J 
∥ (DOUBLE VERTICAL LINE) U+2016             8161         × 
- (MINUS SIGN)         U+2212             817C         × 
~ (WAVE DASH)         U+301C             8160         × 
- (FULLWIDTH HYPHEN-MINUS) U+FF0D         ×         817C 
~ (FULLWIDTH TILDE)     U+FF5E             ×         8160 
¢ (FULLWIDTH CENT SIGN) U+FFE0             ×         8191 
£ (FULLWIDTH POUND SIGN) U+FFE1         ×         8192 
¬ (FULLWIDTH NOT SIGN) U+FFE2             ×         81CA 


总结一下,Shift_JIS和 Windows-31J 有以下两点不同:
<1>Windows-31J包括IBM的扩展文字和NEC的扩展文字。
<2>一些符号转换为Unicode的编码点是不同的。 

所以,通常使用 Windows-31J可以避免一些问题。
=================================================================

3.Java中的MS932就是Windows-31J

WebLogic Server 8.1 SP1  及更高版本的 Service Pack 使用 JDK1.4.1 或更高版本,并会影响 Shift_JIS 区域。在  WebLogic Server 7.0 及以前的版本使用的 JDK(JDK1.3) 中,“Shift_JIS”Java 编码名的别名是 “MS932”。

对于 WebLogicServer 系统中的 IANA-Java 映射,IANA 字符集名“Shift_JIS” 作为 Java 编码名 Shift_JIS 进行处理。因此,在 JSP、Servlet 或 Web Service 使用 Shift_JIS  时,其操作将与以前版本不同。例如,MS932 专有字符(“@”等)将变为“?”。因此,如果希望一如既往地使用 MS932,则应当使用 IANA  名称“Windows-31j”。要使用 MS932,请采用下面的方法 1 或 2。

方法 1 --- 重写 JSP/Servlet 的程序文件。

--- 对于 JSP,在 page 标记中将 Shift_JIS 重写为 Windows-31J。
示例:
当 JSP 中存在以下行且使用 MS932 字符时,请将

<%@ page contentType="text/html; CHARSET=Shift_JIS" %>

重写为:

<%@ page contentType="text/html; CHARSET=Windows-31J" %>

--- 在 Servlet 中更改 setContentType() 的规范。
对于 Servlet,当存在以下规范且使用 MS932 字符时,请将

response.setContentType("text/html;charset=Shift_JIS");

重写为:

response.setContentType("text/html;charset=Windows-31J");

“Windows -31J”是使用 IANA 正式注册的字符集名称,等同于 Microsoft 代码页 932。同样,对于 Java 来说,MS932 与  Microsoft 代码页 932 相关联。因此,Java 中的“MS932”便是 IANA 的“Windows-31J”。实际上在 Java 中,“Windows-31J”也是 MS932 的别名。就目前而言,保持 Java 编码名与 IANA 名称的一致渐成趋势。如果将来希望使用对应于 Microsoft 代码页 932 的字符集,则强烈建议使用“Windows-31J”。

方法 2 --- 在 weblogic.xml 中更改映射(不遵从 J2EE)

在 weblogic.xml  部署描述符文件中,可以将 IANA 名称 Shift_JIS 强制映射为 Java 名称 Windows-31J。这样,您可以不必重写 JSP  或 Servlet 代码,便能够将 Shift_JIS 作为 Windows-31J 进行处理。请在 weblogic.xml 中包括以下项,然 后重新部署 Web 应用程序。

<weblogic-web-app>
  <charset-params>
    <charset-mapping>
      <iana-charset-name>Shift_JIS</iana-charset-name>
      <java-charset-name>Windows-31J</java-charset-name>
    </charset-mapping>
  </charset-params>
</weblogic-web-app>

但 是,这种方法是 WebLogic Server 特有的,不遵从 J2EE。换句话说,它不能与其他 J2EE Servlet 容器交互操作。 “Shift_JIS”IANA 名称为等同于 JIS X 0201 + JIS X 0208 的字符集。因此将此字符集当作 Microsoft  代码页 932 使用是不合适的。仅在由于某些原因难于更正 JSP 或 Servlet 代码时才使用此方法。

  < type="text/javascript"> < type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> < type="text/javascript"> < type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

发表于 @ 2008年07月31日 10:24:00 | 评论( 0 ) 举报收藏

分享到:
评论

相关推荐

    日语编码换换器

    《日语编码转换器》是一款专门用于解决日语编码问题的工具,主要功能是将日语的Shift-JIS编码转换成BIG5(通常称为BGK)编码,以便于处理那些因编码不匹配导致的乱码TXT文件,使其能正确显示。在IT领域,尤其是在...

    文字编码转换工具

    "文字编码转换工具"是一种专门用于解决不同编码格式之间转换问题的应用程序。这种工具通常能够帮助用户将文件或文本从一种编码格式转换为另一种,以确保在不同系统或平台间正确地显示和处理文本数据。 1. **字符...

    日语SJIS和Unicode的转换

    Unicode是一种全球通用的字符集,包含世界上几乎所有的文字,而SJIS是日本常用的字节编码方式,主要用来表示日语中的汉字、假名和符号。 Shift-JIS,全称为"Shift_JIS"或"MS-Kanji",是由微软在日本推广的一种对JIS...

    NT日语转区工具

    其核心功能在于它可以临时调整用户的系统区域设置,将原本适应日本地区编码的环境应用到当前系统中,确保日语游戏的文字显示正确。安装这个工具后,用户只需通过右键点击就能快速启动转区功能,操作简便,无需复杂的...

    jconv:用于日语字符编码的纯JavaScript转换器

    用于日语编码的纯JavaScript Iconv。 此模块支持日语中常用的编码: Shift_JIS(CP932),ISO-2022-JP(-1),EUC-JP,UTF8,UNICODE(UCS2)转换。 纯Javascript,无需编译。 比快得多。 安装 $ npm install ...

    简单的文字编辑器,可把文字转换为日文等

    1. **字符编码**:如Unicode(UTF-8),确保能正确显示多种语言的字符。 2. **自然语言处理(NLP)**:用于理解和转换语言的复杂结构,如语法、词义等。 3. **机器翻译**:如果编辑器具备实时翻译功能,那么背后可能...

    日文字库Sjis码表

    字符编码是计算机处理、存储和传输文本信息的基础,它将各种字符(包括字母、数字、符号以及特定语言的文字)转换为计算机可以识别的二进制形式。在本文中,我们将深入探讨SJIS(Shift_JIS)编码和GBK编码,以及它们...

    汉字转平假名工具

    平假名是日语三种表音文字(假名)之一,由简化后的汉字草书演变而来,主要用来表示日语中的词音和助词。 该工具的核心功能是进行汉字与平假名之间的转换。在日语中,汉字和假名经常混合使用,特别是在书面语和教科...

    乱码 编码方式解决 gbk ISO8859-1 utf8 编码

    3. **UTF-8编码**:UTF-8是一种可变长度的Unicode编码方式,支持世界上几乎所有语言的文字,包括中文。UTF-8的最大特点是兼容ASCII,且对于英文字符只需要一个字节,因此在网络传输中非常高效。 #### 二、乱码问题...

    日语五笔字型输入法 109kb

    这种输入法尤其适合熟悉五笔码的用户,能提高日语文字输入的效率。 日语五笔输入法的基本概念: 1. **五笔码原理**:五笔字型输入法是基于汉字的笔画结构,将每个汉字拆分为五个基本部分(或称为“键根”),每个...

    乱码翻译神器【支持日语韩语繁体中文】.rar

    综上所述,这个压缩包提供的工具集很可能是一个全面的语言处理解决方案,尤其适用于处理日语、韩语和繁体中文的乱码问题,以及进行文本翻译和字符编码转换。用户可以通过运行这些程序来改善他们的跨语言沟通体验,...

    微软日语输入法2010

    微软日语输入法2010是一款专为用户设计的日语文字输入工具,适用于Windows操作系统。这款输入法软件为用户提供了一种高效、便捷的方式,在电脑上进行日语文本的输入和编辑,尤其对于学习和使用日语的人员来说,它是...

    unicode编码表_txt文件

    它解决了不同语言文字在计算机中的编码问题,使多语言环境下的文本处理变得更加简单高效。 #### 二、Unicode编码原理 1. **UCS-2与UCS-4**:Unicode编码采用两种主要的编码形式——UCS-2(Universal Character Set...

    字符编码的转换.pdf

    Unicode是为了解决不同语言文字系统编码不统一的问题而设计的一种编码标准,它使用统一的编码格式来表示世界上几乎所有的字符。在Unicode中,每个字符对应一个唯一的码点,这些码点可以使用不同长度的二进制数来表示...

    字符编码详解

    这一阶段的编码标准如GB2312、BIG5、JIS等,都是针对特定语言区域制定的,但在国际交流中存在明显的局限性,因为不同编码之间互不兼容,难以在一个文档中同时包含多种语言文字。 为了解决国际化的字符支持问题,第...

    多功能文字转换器火星文

    3. **编码转换**:例如UTF-8、GBK等不同编码格式之间的转换,解决不同系统或平台间文字显示问题。 4. **特殊字符与表情转换**:包含表情包、颜文字、emoji等,增加网络交流的趣味性。 5. **加密解密**:可能具备对...

    Unicode编码转换

    1. **Unicode编码**:Unicode是一个庞大的字符集,包含了超过140,000个不同的字符,覆盖了全球几乎所有的文字系统,包括拉丁字母、希腊字母、汉字、日语假名等。它使用二进制数字来表示每个字符,常见的有UTF-8、UTF...

    it 日语

    - **邮件**:在IT领域中,指的是通过互联网发送的文字或多媒体消息。日语中的表达是「メール」。 - **因特网**:即Internet,全球最大的计算机网络。在日语中被称为「(インター)ネット」。 - **网吧**:提供上网服务...

    C# 文字代码页 文字编码的代码页名称速查表

    标题提到的"C# 文字代码页 文字编码的代码页名称速查表"是一个实用的参考资料,主要针对需要进行韩语和日语编码转换的项目。以下是一些关于C#中文字编码的重要知识点: 1. **ASCII编码**:这是最基础的编码,包含...

Global site tag (gtag.js) - Google Analytics