大侠救命!!中文问题~!!!!

beming 2002-11-06 10:35:19
各位帮帮忙
怎么将utf-8字符转换成为gbk或者gb2312呢???
可以帮忙写出一些代码吗???
...全文
66 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
beming 2002-11-08
  • 打赏
  • 举报
回复
我已经完美解决啦,挺复杂的,一时说不清。字符要转换三次,才成功写进文件。而读,则转换一次就ok啦。
hellking 2002-11-06
  • 打赏
  • 举报
回复
用InputStreamReader 和 OutputStreamWriter 。 这两个类可以实现不同字符集之间的转换。
beming 2002-11-06
  • 打赏
  • 举报
回复
如果是MIME-encoded 或者Base64"-encoded 我应该怎么处理啊??!!
help!!!!!
wjmmml 2002-11-06
  • 打赏
  • 举报
回复
public static String Utf8ToUnicode(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("utf-8"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
beming 2002-11-06
  • 打赏
  • 举报
回复
那也就是什么啊??^_^,有没有转换函数??
tomxutomxu 2002-11-06
  • 打赏
  • 举报
回复
--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
  --我们还是用上面的例子
  --  --例1:0xC4E3的二进制:
  --  --    1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1
  --  --    由于只有两位我们按照两位的编码来排,但是我们发现这行不通,
  --  --    因为第7位不是0因此,返回"?"
  --  --   
  --  --例2: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
beming 2002-11-06
  • 打赏
  • 举报
回复
这个没用,我一开始就是用这个转换
fandiy 2002-11-06
  • 打赏
  • 举报
回复
new String(s.getBytes("iso8859-1"),"GBK");
beming 2002-11-06
  • 打赏
  • 举报
回复


就是说,我如何将一个中文字段以UTF-8写处理赋值给一个变量呢??
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
不要跟我说:
public String GB_to_U(String s) throws UnsupportedEncodingException
{
String str=s;
str=new String(s.getBytes("ISO8859_1"),"UTF-8");
return str;
}

啊。

beming 2002-11-06
  • 打赏
  • 举报
回复
问题已经解决

其实现在过程如果是这样问题解决:

先getBytes("IOS8859-1","UTF-8");
之后再转一次:getByte("ISO8859-1","GBK");
问题解决

现在还有一个问题,如果掉转来处理,我应该怎么做呢---
我想将一个GBK的中文字段以上面处理过程的相反过程写回去,应该怎么样的顺序呢??
我试过好多都写不成功(写当然成功,但重新读出来则又是乱码啦)----目的是希望写回去之后,我读出来的是正确的,

62,614

社区成员

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

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