NT4.0下的字符编码问题,高分求救

whhld 2002-06-20 11:51:14
1、在winnt4.0(英文版) 下是否包含GB2312或GBK字符集
2、winnt4.0(英文版)+ SQL SERVER 7.0(英文版) + tomcat3.2
sqlserver 中已经打开了多国语言支持,从sqlserver中读取汉字,该如何才能在jsp页面中正确显示?

特急,在线求教!!谢谢
...全文
28 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
whhld 2002-06-21
  • 打赏
  • 举报
回复
高手们帮帮忙啊!真的很急的,多谢多谢!
whhld 2002-06-21
  • 打赏
  • 举报
回复
真的没有人知道吗?在线求救中!!
whhld 2002-06-21
  • 打赏
  • 举报
回复
呵呵,谢谢楼上的大哥,好的,我们一步一步来分析:

首先可以肯定的是:最终我们是要转化成 GBK 码
那么问题主要在于,我从数据库中取出的汉字是什么编码的,由于是在winNT4的英文版操作系统下,所以我猜想应该是ANSI的编码,那么该如何转化呢?
whhld 2002-06-21
  • 打赏
  • 举报
回复
hello_world兄,可以告知你的这个程序是在干什么吗?
是将GB2312码转化成其他码?还是将其他码(是否是特定的码)转化成GB2312码?
hello_world 2002-06-21
  • 打赏
  • 举报
回复
用我这个试试:
/*
* gb2312 的标准解码技术:
* Tomcat3.*,jdk1.2.*上测试通过
* author:hello_world
*/
public String encodeForGB2312(String str)
int str_len = str.length();
char[] ch_arr = new char[str_len * 5];
int index = 0;
Character ch;
byte aPart;
for (int i = 0; i < str_len; i++)
{
ch = new Character(str.charAt(i));
if (ch.hashCode() >= 0 && ch.hashCode() <= 127)
{
ch_arr[index++] = ch.charValue();
} else
{
ch_arr[index++] = '%';
String b = Integer.toHexString(ch.hashCode());
ch_arr[index++] = b.toUpperCase().charAt(0);
ch_arr[index++] = b.toUpperCase().charAt(1);
}
}
return new String(ch_arr, 0, index);
/*****************************************/
whhld 2002-06-20
  • 打赏
  • 举报
回复
转码,都转过了,方法如下:
public String getStr(String str)
{
try
{
String temp_p = str;
byte[] temp_t = temp_p.getBytes("ISO8859_1");
String temp =new String(temp_t,"GBK");
return temp;
}
catch(Exception e)
{
}
return "null";
}
/////////////////////////////////////////////
GBK也试过了,GB2312、UTF-8都试过了,照样时乱码,谁还有招吗,多谢!
littlecong 2002-06-20
  • 打赏
  • 举报
回复
应该包含的
转码?
yakuu 2002-06-20
  • 打赏
  • 举报
回复
public String getStr(String str)
{
try
{
String temp_p = str;
//
System.out.println(str);
byte[] temp_t = temp_p.getBytes("ISO8859_1");
String temp =new String(temp_t,"GBK");
//
System.out.println(str);
return temp;
}
catch(Exception e)
{
}
return "null";
}

你先看看两个字串的输出,然后试着将编码改成
String temp =new String(temp_p.getBytes("ISO-8859-1"),"GBK");
必须要知道你得到的是什么字符,转成什么字符。

别急,慢慢来。
whhld 2002-06-20
  • 打赏
  • 举报
回复
为什么没有回答呢?我真得很急,大家帮帮忙,多谢多谢!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧