zh_CN.EUC是UNIX下GB2312的一种叫法

eucCN是什么

2009-05-13 01:56:01来源:未知 阅读 (1)

在FreeBSD 4.11中,国际化、本地化支持中有个设置locale的细节,对于简体中文环境,很多的资料都推荐使用zh_CN.eucCN这个locale,但是却没有说为什么要使用这个环境,我很好奇,也想搞清楚这个eucCN到底是一种什么样的编码,系统要怎样处理 eucCN 和 UTF-8 之间的转换问题。

首先说说这个EUC

我找到了一个英文文档(中文文档很少有介绍EUC)

EUC
EUC stands for Extended Unix Code. It is a multibyte encoding standard developed by AT&T and supported on all System V implementations used to represent large Asian characters sets. There are several variants, two of them are for Chinese.
It defines both a fixed length and variable length encoding. It's a 8 bit coding method
If codeset 0 is ASCII, then the EUC codeset is ASCII transparent. Often this is the local version of ASCII. The rules for describing a legal EUC codeset. These rules are the following:
1) Each character of an EUC multibyte string is chosen from among four distinct multibyte codesets (0,1,2,and 3).
2) Codeset 0 must be a 7bit codeset.
3) No multibyte character of Codeset 1 will use either SS2 or SS3 as its first byte.
4) Characters from codeset 2 will be preceded by the byte SS2.
5) Characters from codeset 3 will be preceded by the byte SS3.
6) For codesets 1, 2, and 3, every byte of every character must have the eighth bit set.


EUC是Unix环境下的一种扩展编码体系,采用8位字节编码,支持固定字节和可变字节的编码,广泛使用在Unix环境下对多国语言的支持,目前对于中文环境,有两个编码集。Unix在推广EUC的时候是充分的借鉴,吸纳多字节编码国家的编码集本地化实现,两种中文编码集基本上都是吸纳了简体和繁体的编码集,很关键的一点就是它不是UTF-8,Unix系统(FreeBSD)要利用NLS机制,进行多字节和系统库使用的宽字符之间的转换,确切的说是euc和UTF-8的转换。


eucCN是什么

EUC-TW

  • codeset 0 : ASCII
  • codeset 1 : CNS 11643-1992 plane 1
  • codeset 2 : CNS 11643-1992 plane 2 - 16
  • codeset 3 : [not used]


EUC-CN

  • codeset 0 : ASCII
  • codeset 1 : GB 2312-80
  • codeset 2 : [not used]
  • codeset 3 : [not used]


从上面看来,eucCN就是GB2312,在FreeBSD 4.11中,已经不存在GB2312这个locale,eucCN就是GB2312,使用8位的两字节编码。



本文来自ChinaUnix博客,如果查看原文请点:
http://blog.chinaunix.net/u/12258/showart_64289.html
将下面的ACCESS的sql语言SELECT Last(EUC_W4_PRD_MES_WIP_HIST_V.EVENT_TIME) AS EVENT_TIME之Last, EUC_W4_PRD_MES_WIP_HIST_V.CUST_NO, EUC_W4_PRD_MES_WIP_HIST_V.PROCESS_NO, EUC_W4_PRD_MES_WIP_HIST_V.CUST_NAME, EUC_W4_PRD_MES_WIP_HIST_V.LOT_NO, EUC_W4_PRD_MES_WIP_HIST_V.CUST_LOT_NO, EUC_W4_PRD_MES_WIP_HIST_V.CUST_DEVICE_NO AS DEVICE, EUC_W4_PRD_MES_WIP_HIST_V.LOT_TYPE, EUC_W4_PRD_MES_WIP_HIST_V.DEVICE_NO AS ITEM, EUC_W4_PRD_MES_WIP_HIST_V.FAMILY_NO, Last(EUC_W4_PRD_MES_WIP_HIST_V.EVENT_SEQ) AS EVENT_SEQ之Last, EUC_W4_PRD_MES_WIP_HIST_V.STAGE_NO_FROM, EUC_W4_PRD_MES_WIP_HIST_V.EVENT_NAME, Last(EUC_W4_PRD_MES_WIP_HIST_V.EQP_NO) AS EQP_NO之Last, EUC_W4_PRD_MES_WIP_HIST_V.EQP_NO2, EUC_W4_PRD_MES_WIP_HIST_V.TEST_PROGRAM_NAME, Last(EUC_W4_PRD_MES_WIP_HIST_V.CREATE_BY) AS CREATE_BY之Last, EUC_W4_PRD_MES_WIP_HIST_V.QTY_FROM, EUC_W4_PRD_MES_WIP_HIST_V.QTY_TO, Max(IIf([BIN_NO]="B1",IIf([BIN_TYPE]="P",[BIN_QTY],0))) AS BIN1, Min(IIf([BIN_NO]="B2",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN2, Min(IIf([BIN_NO]="B3",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN3, Min(IIf([BIN_NO]="B4",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN4, Min(IIf([BIN_NO]="B5",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN5, Min(IIf([BIN_NO]="B6",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN6, Min(IIf([BIN_NO]="B7",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN7, Min(IIf([BIN_NO]="B8",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN8, Min(IIf([BIN_NO]="B9",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN9, Min(IIf([BIN_NO]="BA",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN10, Min(IIf([BIN_NO]="BB",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN11, Min(IIf([BIN_NO]="BC",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN12, Min(IIf([BIN_NO]="BD",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN13, Min(IIf([BIN_NO]="BE",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN14, Min(IIf([BIN_NO]="BF",IIf([BIN_TYPE]="P",[BIN_QTY],0))) AS BIN15, Min(IIf([BIN_NO]="BG",IIf([BIN_TYPE]="F",[BIN_QTY],0))) AS BIN16, Last(IIf([BIN_NO]="DM",IIf([BIN_TYPE]="D",[BIN_QTY],0))) AS DAMAGE, Last(IIf([BIN_NO]="LO",IIf([BIN_TYPE]="L",[BIN_QTY],0))) AS LOSS, EUC_W4_PRD_MES_WIP_HIST_V.LOT_NO, Left([EUC_W4_PRD_MES_WIP_HIST_V.LOT_NO],8) AS WIP_ENTITY_NAME FROM EUC_W4_PRD_MES_WIP_HIST_V LEFT JOIN EUC_W4_PRD_MES_WIP_HIST_BIN_V ON (EUC_W4_PRD_MES_WIP_HIST_V.EVENT_SEQ = EUC_W4_PRD_MES_WIP_HIST_BIN_V.EVENT_SEQ) AND (EUC_W4_PRD_MES_WIP_HIST_V.LOT_NO = EUC_W4_PRD_MES_WIP_HIST_BIN_V.LOT_NO) GROUP BY EUC_W4_PRD_MES_WIP_HIST_V.CUST_NO, EUC_W4_PRD_MES_WIP_HIST_V.PROCESS_NO, EUC_W4_PRD_MES_WIP_HIST_V.CUST_NAME, EUC_W4_PRD_MES_WIP_HIST_V.CUST_LOT_NO, EUC_W4_PRD_MES_WIP_HIST_V.CUST_DEVICE_NO, EUC_W4_PRD_MES_WIP_HIST_V.LOT_TYPE, EUC_W4_PRD_MES_WIP_HIST_V.DEVICE_NO, EUC_W4_PRD_MES_WIP_HIST_V.FAMILY_NO, EUC_W4_PRD_MES_WIP_HIST_V.STAGE_NO_FROM, EUC_W4_PRD_MES_WIP_HIST_V.EVENT_NAME, EUC_W4_PRD_MES_WIP_HIST_V.EQP_NO2, EUC_W4_PRD_MES_WIP_HIST_V.TEST_PROGRAM_NAME, EUC_W4_PRD_MES_WIP_HIST_V.QTY_FROM, EUC_W4_PRD_MES_WIP_HIST_V.QTY_TO, EUC_W4_PRD_MES_WIP_HIST_V.LOT_NO, Left([EUC_W4_PRD_MES_WIP_HIST_V.LOT_NO],8) HAVING (((EUC_W4_PRD_MES_WIP_HIST_V.EVENT_NAME)="STAGE_DCOP"));
最新发布
08-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值