`

关于日文编码(Shift_JIS Windows-31 EUC-JP)

    博客分类:
  • Java
阅读更多

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 代码时才使用此方法。

 

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

分享到:
评论

相关推荐

    日文Shift_JIS码表

    此外,Shift_JIS与其他编码如UTF-8、EUC-JP等相比,有其独特性和局限性。例如,Shift_JIS不包含Unicode中的全宽拉丁字符,这可能导致混合语言文本处理时的问题。同时,Shift_JIS编码中存在重叠的字符映射,导致同一...

    nls_euc-jp.rar_conversion

    标题 "nls_euc-jp.rar_conversion" 涉及的是一个关于字符编码转换的专题,特别是关于EUC-JP编码和可能与之相关的OSF JVC推荐代码集转换规范。EUC-JP(Extended Unix Character Set for Japanese)是日本语环境中广泛...

    JIS X 0208 の文字コード表

    此外,为了兼容不同的系统,JIS X 0208 还定义了多种不同的变体,包括SJIS(Shift JIS)和EUC-JP(Extended Unix Code for Japan)等。 #### SJIS与EUC-JP - **SJIS (Shift JIS)**:这是一种扩展版本的JIS X 0208...

    编码模拟器v1.0绿色版支持ANSI编码

    功能介绍 在文本字元编码之间进行转换(包括UTF-8,没有bom标记的UTF-8,UTF-16le,UTF-16be,UTF-32le,UTF-32be,中文简体GBK,中文繁体BIG5,日文 shift-JIS, 日文 euc-jp, 韩文 euc-kr等, 请参照支援的

    libiconv库 实现一个字符编码到另一个字符编码的转换 已编译成dll,lib

    libiconv库 [1]为需要做转换的应用提供了一个iconv的函数...EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1 中文 EUC-CN, HZ, GBK, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, ISO-2022-CN, IS

    日文乱码转换工具

    日文乱码尤其常见,因为日语使用了多种字符集,包括平假名、片假名和汉字,这些字符在不同的编码标准(如Shift-JIS、EUC-JP、UTF-8等)中有不同的表示方式。 【描述】提到的"Locale Emulator 2.4.0.0官方版"是一个...

    日文linux服务器配置

    这里解压了“SHIFT_JIS.gz”文件,并尝试使用SHIFT-JIS编码创建一个新的本地化环境“ja_JP.SJIS”。需要注意的是,“character map `SHIFT_JIS' is not ASCII compatible, localename is not ISOCcompliant”这一行...

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

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

    各国文字Unicode编码范围

    - 常见编码有Shift-JIS和EUC-JP。 - Shift-JIS是单/双字节,字节1范围A1-DF对应单字节,81-9F, E0-EF对应双字节。 - EUC-JP是多字节,8E对应双字节,8F对应三字节。 4. **韩文**: - Unicode范围:1100-11FF...

    文字变换工具(EUC->SJIS)

    而SJIS(Shift JIS)则是另一种在日本流行的字符编码,由Microsoft推广,同样可以表示大量的日文汉字、假名和符号。 “文字变换工具(EUC-&gt;SJIS)”正是为了满足在EUC编码和SJIS编码之间转换的需求而设计的。这个工具...

    sourceinsight 日文注释乱码问题解决

    若源代码文件使用了其他编码,如Shift_JIS或EUC-JP,你需要在Source Insight中进行相应的设置。 接下来,我们将介绍如何在Source Insight中设置正确的编码: 1. 打开Source Insight,进入“Tools”(工具)菜单,...

    韩文、日文、繁体字的字符集,及字符集介绍

    主要的字符集有Shift_JIS、EUC-JP和UTF-8。Shift_JIS是由日本Microsoft公司开发的,它在ASCII基础上扩展,支持日语的平假名、片假名和汉字。EUC-JP是另一种广泛使用的字符集,它是对ASCII的非ASCII部分进行扩展,...

    自制中文系统下 日文乱码小工具

    在中文系统中,默认的字符编码可能为GB2312、GBK或UTF-8,而日文字符可能采用Shift_JIS、EUC-JP或UTF-8等编码方式。当这些不同编码的文本互相转换或混合使用时,如果没有正确处理,就会出现无法识别的字符,即我们所...

    FPDF的日文支持包php

    `japanese.php`文件很可能是实现了对日本的JIS、Shift_JIS、EUC-JP、UTF-8等编码的支持,这些编码方式在处理日文文本时非常常见。该文件可能包含了一些特定的字体定义,使FPDF能够识别并渲染日文字形。同时,它可能...

    日文乱码解决利器

    中文系统默认使用的字符编码通常为GB2312、GBK或UTF-8,而日文则主要使用Shift-JIS、EUC-JP或UTF-8等编码。当这两种编码体系不兼容时,日文字符在中文系统下会显示为乱码。这款“解决利器”软件能解决这个问题,使得...

    文字编码转换工具

    - 支持日本常用的Shift-JIS编码,以及Unicode的UTF-8和UTF-16等编码。 - 用户界面可能采用日语,便于日本用户操作。 - 提供对EUC-JP和ISO-2022-JP等其他日本特定编码的支持。 - 可能具有对日文文件名和路径的...

    标准编码的码表,UTF8,unicode等等

    EUC(Extended Unix Code)是一组用于东亚语言的多字节编码,包括EUC-CN(GB2312)、EUC-TW(Big5)和EUC-JP(Shift-JIS)。EUC编码允许在单一的字节流中表示多种语言,但不具有互换性,即不同EUC变种之间无法直接...

    APPLE蘋果系統UNICODE內碼轉換表.7z

    3. JAPANESE.txt:代表日文的编码转换,可能是Shift_JIS或EUC-JP编码与Unicode的关系。 4. CHINSIMP.txt:这应是简体中文的编码转换,可能是GBK或GB2312编码与Unicode的对应。 5. Readme (1).txt和ReadMe.txt:通常...

    前端项目-encoding-japanese.zip

    这个项目可能包含了处理Unicode、Shift_JIS、EUC-JP等不同字符编码方式的代码,以确保在网页上正确显示日语文本。 在JavaScript环境中,处理字符编码通常涉及到以下几个关键知识点: 1. **Unicode**: Unicode 是一...

    中文转日文工具,要输入繁体,再按回车

    日文则有Shift-JIS、EUC-JP和UTF-8等多种编码。这个工具可能需要支持多种编码格式,以便正确读取和转换不同来源的繁体中文文本。 其次,语言处理技术是关键。在转换过程中,工具需要识别出输入的繁体中文词汇,并将...

Global site tag (gtag.js) - Google Analytics