jsp相关!~~~~~~~~~~~
悬赏分:10 - 解决时间:2007-10-18 12:52
<%@ page contentType="text/html;charset=GB2312" %>
<MHML>
<BODY>
<P>获取文本框提交的信息:
<%String textContent=request.getParameter("boy");
byte b[]=textContent.getBytes("ISO-8859-1");
textContent=new String(b);
%>
<BR>
<%=textContent%>
<P> 获取按钮的名字:
<%String buttonName=request.getParameter("submit");
byte c[]=buttonName.getBytes("ISO-8859-1");
buttonName=new String(c);
%>
<BR>
<%=buttonName%>
</BODY>
</HTML>
这里的b[]=textContent.getBytes("ISO-8859-1");
ISO-8859-1 代表什么!?
提问者: 121022133 - 见习魔法师 二级
ISO/IEC 8859-1,又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入192个字母及符号,藉以供使用变音符号的拉丁字母语言使用。
此字符集支援部分于欧洲使用的语言,包括阿尔巴尼亚语、巴斯克语、布列塔尼语、加泰罗尼亚语、丹麦语、荷兰语、法罗语、弗里西语、加利西亚语、德语、格陵兰语、冰岛语、爱尔兰盖尔语、意大利语、拉丁语、卢森堡语、挪威语、葡萄牙语、里托罗曼斯语、苏格兰盖尔语、西班牙语及瑞典语。
英语虽然没有重音字母,但仍会标明为ISO 8859-1编码。除此之外,欧洲以外的部分语言,如南非荷兰语、斯瓦希里语、印尼语及马来语、菲律宾他加洛语等也可使用ISO 8859-1编码。
法语及芬兰语本来也使用ISO 8859-1来表示。但因它没有法语使用的 œ、Œ、 Ÿ 三个字母及芬兰语使用的 Š、š、Ž、ž ,故于1998年被ISO/IEC 8859-15所取代。(ISO 8859-15同时加入了欧元符号)
JAVA字符编码:Unicode,ISO-8859,GBK,UTF-8编码
1:编码方式
阶段一 ASCII 计算机刚开始只支持英语,其它语言不能够在计算机上存储和显示。 英文 DOS
阶段二 ANSI编码
(本地化) 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。
不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。
不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 中文 DOS,中文 Windows 95/98,日文 Windows 95/98
阶段三 UNICODE
(国际化) 为了使国际间信息交流更加方便,国际组织制定了 UNICODE 字符集,为各种语言中的每一个字符设定了统一并且唯一的数字编号,以满足跨语言、跨平台进行文本转换、处理的要求。
C++和java中数据类型及编码 类型或操作
C++
Java
字符 wchar_t char
字节 char byte
ANSI 字符串 char[] byte[]
UNICODE 字符串 wchar_t[] String
字节串→字符串 mbstowcs(), MultiByteToWideChar() string = new String(bytes, "encoding")
字符串→字节串 wcstombs(), WideCharToMultiByte() bytes = string.getBytes("encoding")
从上边知道
Java 中的 char 代表一个“UNICODE 字符(宽字节字符)”,而 C++ 中的 char 代表一个字节;
Java 中字符串类 String 中的内容是 UNICODE 字符串;
二:JSP及Java程序中的传送编码方式
JSP页中加如下语句
<%@ page language="java" pageEncoding="GBK"%>
其中pageEncoding是当jsp转译成_jsp.java时使用的encoding.预设是iso8859_1.
当_jsp.java编译成_jsp.class是使用utf-8作为encoding.
<%@ page contentType="text/html;charset=GBK" %>
输出到浏览器时的文件格式和编码方式,预设是iso8859_1;
也可以直接调用response.setContentType("text/html; charset=GBK")来设定,但是必须在传回任何结果之前调用,否则不起作用。
三:传送数据时,不同的传送方式的处理方法
使用GET 的方式:
String test = new String((request.getParameter("test")).getBytes("ISO-8859-1"),"GBK");
使用POST 的方式:
request.setCharacterEncoding("GBK");
注意,其中的GBK的编码与页面的pageEncoding必须一致,如果页面的编码是UTF-8,那么这里也应该把GBK改成UTF-8,否则同样会乱码
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=646020
总之是一种编码方式
回答者:wuxiaoyu0413 - 见习魔法师 三级 10-14 20:22
提问者对于答案的评价:
还帮我找了这么多相关的资料,3Q!~
评价已经被关闭 目前有 0 个人评价
• |
jsp相关问题 request.getRemoteHost()和session.getId() | • |
jsp相关疑问 | • |
JSP相关问题 | • |
请问这是什么错误(JSP相关),希望详细点:) | • |
JSP相关 急!!谢谢 |
| 更多相关问题>> |
是一种文字的编码格式
byte b[]=textContent.getBytes("ISO-8859-1");
是说将textContent的编码格式转变为ISO-8859-1,然后赋值给byte b[]
回答者:什么都不禁 - 试用期 一级 10-15 01:16
|