Article View: cn.bbs.comp.lang.java
Article #20317java�� �����������
From: come on
Date: Fri, 19 Dec 2003 02:08
Date: Fri, 19 Dec 2003 02:08
206 lines
16652 bytes
16652 bytes
Ԥ��֪ʶ��
��1.�ֽں�unicode
����Java�ں���unicode�ģ�����class�ļ�Ҳ�ǣ����Ǻܶ�ý�壬�����ļ�/���ı��淽ʽ
������ʹ���ֽ����ġ� ���JavaҪ����Щ�ֽ�������ת����char��unicode�ģ���byte���ֽ�.
����Java��byte/char��ת�ĺ�����sun.io�İ��м��С�����ByteToCharConverter�����е��ȣ�
�����������������㣬���õ�Convertor�����������ܳ��õľ�̬������
���� public static ByteToCharConverter getDefault() ;
���� public static ByteToCharConverter getConverter(String encoding);
��������㲻ָ��converter����ϵͳ���Զ�ʹ�õ�ǰ��Encoding,GBƽ̨����GBK,ENƽ̨����
����8859_1
����
������������һ�������ӣ�
����������"��"��gb���ǣ�0xC4E3 ,unicode��0x4F60
��������������:
����������--encoding="gb2312";
����������--byte b[]={(byte)'u00c4',(byte)'u00E3'};
����������--convertor=ByteToCharConverter.getConverter(encoding);
����������--char [] c=converter.convertAll(b);
����������--for(int i=0;i ����������--{
����������-- System.out.println(Integer.toHexString(c[i]));
����������--}
����������--��ӡ������0x4F60
����������--�������ʹ��8859_1�ı��룬��ӡ������
����������--0x00C4,0x00E3
����������----��
�������� ��������
�������� --encoding="gb2312";
�������� ������char c[]={'u4F60'};
�������������� convertor=ByteToCharConverter.getConverter(encoding);
����������--byte [] b=converter.convertAll(c);
����������--for(int i=0;i ����������--{
����������-- System.out.println(Integer.toHexString(b[i]));
����������--}
������������--��ӡ�����ǣ�0xC4,0xE3
������������----��
������������--�����8859_1����0x3F��?�ţ���ʾ��ת��������������--
���������� �ܶ�����������Ǵ��������������������ġ���ȴ�кܶ��ࡡ��
������ֱ��֧�ְ�Encoding���룬������Ǵ������㡣�ܶ�����ѵ���encoding
�����ˣ�ֱ����default��encoding�����������ֲ�����˺ܶ�����
����--
����2.UTF-8
����--UTF-8�Ǻ�Unicodeһһ��Ӧ�ģ���ʵ�ֺܼ�
����--
���� -- 7�Unicode: 0 _ _ _ _ _ _ _
����--11�Unicode: 1 1 0 _ _ _ _ _ 1 0 _ _ _ _ _ _
����--16�Unicode: 1 1 1 0 _ _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _
����--21�Unicode: 1 1 1 1 0 _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _
����--����������ֻʹ�õ�16λ���µ�Unicode:
����--"��"��gb���ǣ�0xC4E3 ,unicode��0x4F60
����--���ǻ��������������
����--����--��0xC4E3�Ķ����ƣ�
����--����--������ 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1
����--����--������ ����ֻ����λ���ǰ�����λ�ı������ţ��������Ƿ������в�ͨ��
����--����--������ ��Ϊ�ڣ�λ����0��ˣ�����"?"
����--����--������
����--����--��0x4F60�Ķ����ƣ�
����--����--������ 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0
����--����--������ ������UTF-8���룬��ɣ�
����--����--������ 11100100 10111101 10100000
����--����--������ E4--BD-- A0
����--����--������ ���Ƿ���0xE4,0xBD,0xA0
����--����--
����3.String��byte[]
����--String��ʵ������char[],Ȼ��Ҫ��byteת����String�����뾭����롣
����--String.length()��ʵ����char����ij��ȣ����ʹ�ò�ͬ�ı��룬�ܿ�
����--�ܻ��֣����ɢ�ֺ����롣
����--��
����----byte [] b={(byte)'u00c4',(byte)'u00e3'};
����----String str=new String(b,encoding);����----
����----���encoding=8859_1�����������֣�����encoding=gb2312ֻ��һ���֡���----
����--��������ڴ����ҳ�Ǿ�������
����4.Reader,Writer/InputStream,OutputStream
����--Reader��Writer������char��InputStream��OutputStream������byte��
����--����Reader��Writer����ҪĿ����Ҫ��Char��/дInputStream/OutputStream
--һ��reader�����ӣ�
--�ļ�test.txtֻ��һ��"��"�֣�0xC4,0xE3--
--String encoding=;
--InputStreamReader reader=new InputStreamReader(
----new FileInputStream("text.txt"),encoding);
--char []c=new char[10];
--int length=reader.read(c);
--for(int i=0;i ----System.out.println(c[i]);
����--���encoding��gb2312����ֻ��һ���ַ����encoding=8859_1�����������ַ�
����--------
--
--
����
���� ----
��2.����Ҫ��Java�ı����������˽⣺
��--javac -encoding
�� ���dz���û���õ�ENCODING���������ʵEncoding���������ڿ�ƽ̨�IJ����Ǻ���Ҫ�ġ�
�� ���û��ָ��Encoding������ϵͳ��Ĭ��Encoding,gbƽ̨����gb2312��Ӣ��ƽ̨����ISO8859_1����
��--Java�ı�����ʵ�����ǵ���sun.tools.javac.Main���࣬���ļ����б��룬����ࡡ--
����compile�����м���һ��encoding�ı���,-encoding�IJ�����ʵֱ�Ӵ���encoding������
�����������Ǹ�������������ȡjava�ļ��ģ�Ȼ�����UTF-8��ʽ�����class�ļ���
��һ�����ӣ�
��--public void test()
��--{
��----String str="��";
��----FileWriter write=new FileWriter("test.txt");
��----write.write(str);
��----write.close();
��--}
��----��
--�����gb2312���룬����ҵ�E4 BD A0���ֶ�
--
--�����8859_1���룬
--00C4 00E3�Ķ����ƣ�
--00000000 11000100 00000000 11100011--
--��Ϊÿ���ַ����7λ�������11λ���룺
--11000001 10000100 11000011 10100011
--C1-- 84--��C3--�� A3
--����ҵ�C1 84 C3 A3 --
��������
������������������Ե���������������������п�ƽ̨�����⣺
����--������������ƽ̨�ϱ��룬���ZhClass
����--��������Ӣ��ƽ̨�ϱ��룬���EnClass
����--1.�� ZhClass������ƽ̨��ִ��OK,������Ӣ��ƽ̨�ϲ���
����--2.�� EnClass��Ӣ��ƽ̨��ִ��OK,����������ƽ̨�ϲ���
����ԭ��
��--1.������ƽ̨�ϱ������ʵstr������̬��char[]��0x4F60,��----
��--������ƽ̨�����У�FileWriter��ȱʡ������gb2312,���
��--CharToByteConverter���Զ��õ���gb2312��converter,��strת��
��--��byte���뵽FileOutputStream�У�����0xC4,0xE3�Ž����ļ���
��--�����������Ӣ��ƽ̨�£�CharToByteConverter��ȱʡֵ��8859_1,
��--FileWriter���Զ�����8859_1ȥת��str,�����������ͣ�������
��--���"?"��----
��--2.����Ӣ��ƽ̨�ϱ������ʵstr������̬��char[]��0x00C4 0x00E3,��----
��--������ƽ̨�����У�������ʶ����˻����??
��--������Ӣ��ƽ̨�ϣ�0x00C4-->0xC4,0x00E3->0xE3�����0xC4,0xE3���Ž���
��--�ļ�
----
1.����JSP���ĵĽ��ͣ�
--Tomcat���ȿ�һ�����Ҷ������û��"
http://localhost/test/test.jsp?value=��
���:�����
�����ַ��������Խϴ�����ϴ������·ֶΣ�����������������ģ���õ�
��������������ַ�����
���
�ض�����,������������ҹ�ά
--------------------------------------------------------------------------------
1.��ҳ�������ᳫ��get����,�����û����Ե����Ƿ���utf-8����
2.����jsp����ò�Ҫ��,ʵ���ϼӲ�����䶼��ʵ����������ʾ�ķ���,����Ϊ���ӷ���Щ,���ٲ���д��Щ����,���µ���������Ϊ����ʹ��������ʾ:
a.���е�javabean��iso8859-1����
b.jsp�ļ��в�Ҫд����charset=gb2312�����(д�˷����)
��tomcat�����ע������2�����---��,�ȵ�,���������п��ܲ��е�jsp������,��������
c.�������ϵIJ���ϵͳ������ΪӢ��(��û��װ����bluepoint����ϵͳ��linuxһ�㱾������Ӣ��)
����---��
˭Ҫ�ǻ�����,�뱨��....
Re���ض�����,������������ҹ�ά
--------------------------------------------------------------------------------
Tomcat�IJ�������������GET����POST��ʽ������8859_1����ġ�������Կ�Tomcat Servletʵ�ֵ�Դ����:
a) ����POST����
��javax.servlet.http.HttpUtils��parsePostData������ (����POST��Form���)
��String postedBody = new String(postedBytes, 0, len, "8859_1");)������û���������Ϊ���Ķ�����%��˵��������parseName�������ȴû�а������ĵĶ��������������ֻ�Ǽ�ƴ�գ���˿����϶�����ʹ��8859_1�ı������
�� sb.append((char) Integer.parseInt(s.substring(i+1, i+3), 16));
----����i += 2;
--
b) ����GET����
��org.apache.tomcat.service.http.HttpRequestAdapter
������--��line=new String(buf, 0, count,
������������ Constants.CharacterEncoding.Default);
----Constants.CharacterEncoding.Default=8859_1
����δ��벻�ø��٣�ǧ��Ҫ��һЩ�����Ի�ס��HttpRequestAdapter�Ǵ�RequestImpl������ġ����ǣ�ʵ������8080�˿ڵ�Server��û��ֱ���õ�RequestImpl����������HttpRequestAdapter�����queryString
���ڼӲ���encoding���ұ����ҵ������Ϊ���Ҫ����ϴ��ļ���ҳ���⣬����Ҫ���������롣���ұ����ܱ�֤��һЩBeans���еĴ����ԡ�
������Ҫ������˵��һ����
--------------------------------------------------------------------------------
Tomcat������һ����jsp1.1,servlet2.2��һ������ʵ��,���Dz�Ӧ��Ҫ�������������ϸ��ĩ���Ϻ������϶�����㵽,����Ҫ���ǵ�Ӣ���û�,��Ҳ��Ϊʲô��������ת�����ǵĺ�����url���������������ԭ��,���Ǵ������ie���������ʼ����utf-8����url��ѡ��ȱʡ��ѡ��
��,���˵����tomcat��bugҲ�ǿ��Ե�,����Tomcat���ܵ�ǰ�IJ���ϵͳ��ʲô����,����iso8859ȥ����jsp,�Ҿ���Ҳ�е�Ƿ��,���Dz�����ô˵,�±���ʵ�ֺ����ŵ���������Ե�֧�ַ�����Զ�����ȿ���Ӣ��
�ҵķ���ʲô˵Ҫ��һЩ��
1.�����Ǿ仰,Ӣ�Ĺ�ҵ������Զ�����ȿ���Ӣ��,java�����Ĺ淶��Ҫ��������ڲ�����ʵ��iso8859,unicode,UTF-8����,����IJ���Ҫ��,�����õ�jdk�е�������������,Ƕ��ʽ�ľ���˵��,Ҳ����˵�����ENCODE���ܿ��ܲ���java������ڲ�ֱ��֧�ֵ�,���ǵ�������ȻҲ���
�����,��Ҫ�ⲿ�İ�֧��ת��,sun jdkӦ����i18n.jar��,��iso8859�ٶ����,����Ҫ������úͽ���ʲô��,��û�ж����io����
2.������д�˴���,û�ж������,���ķ��˭��ϲ��
3.��д��jspҳ�����Ի���,�Ҳ�д��һ��jsp+javabeans�����������(û���õ�servlet,jsp���ȷʵ�ܺ�),ͬ��ij��������������ǵ�������������Ӣ�Ľ���,���Ľ���������Ľ���,������charset=gb2312���ٺ��鷳
4.����gb2312,����û�Ҫ��GBK,��ô��,���Ӹ��,����ʲô���ַ�,ֻҪ�ҵ�ǰ������趨����,�Ҿ�����ʾ����
�ܽ�:���۴��ٶ���,����Ч����,�Ϳ���չ���Ͽ���,�ҵķ���������ĺ�,����,���Ҳ�����ķ������ҵĺõĵط�.
--
[m[1;33m�� ��Դ:��Ʈ��ˮ�Ƽ� Freecity.dhs.org��[FROM: succeed][m
Technical Details
Message-ID:
<49hMeC$AqJ@Freecity.dhs.org>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!news2.google.com!news.maxwell.syr.edu!fr.ip.ndsoftware.net!news.primus.ca!news.primus.ca!ctu-peer!news.nctu.edu.tw!netnews.csie.nctu.edu.tw!maily.cic.tsinghua.edu.cn!news.ccie.net.cn!FreecityShow Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB X-Google-Thread: f6cb0,c7f4762d1d1ac479,start X-Google-Attributes: gidf6cb0,public X-Google-ArrivalTime: 2003-12-22 03:05:58 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!news2.google.com!news.maxwell.syr.edu!fr.ip.ndsoftware.net!news.primus.ca!news.primus.ca!ctu-peer!news.nctu.edu.tw!netnews.csie.nctu.edu.tw!maily.cic.tsinghua.edu.cn!news.ccie.net.cn!Freecity From: succeed.bbs@Freecity.dhs.org (come on ) Newsgroups: cn.bbs.comp.lang.java Subject: java�� ����������� Date: 19 Dec 2003 02:08:29 GMT Organization: Ʈ��ˮ�Ƽ� Message-ID: <49hMeC$AqJ@Freecity.dhs.org> Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit X-Filename: Java/M.1071799692.A Lines: 206