关于jive的中文问题,我总是弄不清楚请大家帮忙

03-07-14 freezh

总是感觉有很多的知识点挡住了,无法理解,请大家帮忙!

以下是几个问题:

1、中文操作系统的默认编码方式是什么?英文操作系统的默认编码方式是什么。

2、java中的默认编码方式是unicode,对吗?是不是java系统和操作系统中的文件,和数据库在交换的时候需要对不同的编码进行转换。

3、好象数据库也有编码方式,那么我用的mysql数据库,它的编码方式是什么呢?如果我用的是中文sql server 2000那么它的编码方式是什么?若是用的英文sql server 2000那么它的编码方式是什么?

4、iso8859_1是一种什么编码方式?

5、<%@ page contentType="text/html;charset=gb2312" %>这句话的含义是什么?是指这个网页用的是gb2312编码方式吧?如果这个网页中有个<input type="text">一个文本框,我提交一个中文,然后通过request.getParameter在另一个网页中显示出来又成了乱码,我在这两个网页中用的都是gb2312为什么会产生乱码呢???

请教大侠了,java中文问题困扰我很久了,我这次打算要把它弄清楚,大家帮忙了

freezh
2003-07-14 10:08

我写的page contentType="text/html;charset=gb2312"这句话没显示出来是第个问题中的,这句话是指这个网页中用的编码方式是gb2312是吗?那个这个网页中有一个对话框,我在对话框里输入中文,在另一个网页中直接读取出来通过request.getParameter(),为什么也是乱码,我这个网页中用的也是gb2312方式,编码方式统一为什么出问题呢?

好多地方不明白,希望大家指教,如果有什么好的教材关于字符的,希望大家给出!

seven
2003-07-22 14:57

我说的不一定正确,望指正~~

1.中文win好像是gbk,西文不知道(8859?)

2.unicode,y

3.这两个数据库没用过;sybase中有iso(8859),cp850(java不支持);oracle中有gb2312等....

4.西文单字节编码

5.传过来的字符串已经被自动编码为8859,如果你的页面也是8859就无需转换.否则需要做字符集转码

mybillliu
2003-07-22 15:44

关于你的问题下面的代码可以帮你解决

String getStr(String str)

{

try

{

String temp_t = str;

byte[] st = temp_st.getBytes(str));

String returnStr = new String(st);

return returnStr;

}

catch(Exception e)

{}

return null;

}

比如你有代码

<%

String request.getParameter("name");

%>

如果你直接取值的话,就会是乱码

但是改为

<%

String name = getStr(request.getParameter("name"));

%>

这样的话name 的值就不会为乱码了

MIB007
2003-07-22 16:53

老大,这段代码好象不能用哦,返回的全是null吗?

上传文件和图片时怎么让名称和路径不乱码啊?