Foxtable(狐表)用户栏目专家坐堂 → []求助]unicode编码怎么样处理成为汉字呀?


  共有3691人关注过本帖树形打印复制链接

主题:[]求助]unicode编码怎么样处理成为汉字呀?

帅哥哟,离线,有人找我吗?
liguichuan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3168 威望:0 精华:1 注册:2011/4/20 1:40:00
[]求助]unicode编码怎么样处理成为汉字呀?  发帖心情 Post By:2015/2/12 19:39:00 [只看该作者]

像“\u8717\u725B\u8BF4\u7EE7\u7EED”这一类的unicode编码怎么样处理成为汉字呀?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 20:09:00 [只看该作者]

 

[此贴子已经被作者于2015/2/12 20:09:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 20:12:00 [只看该作者]

Dim str As String = "\u8717\u725B\u8BF4\u7EE7\u7EED"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "\\u.{4}")
Dim c As String = ""
For i As Integer = 0 To mc.count - 1
    c &= chrw(Convert.ToInt32(mc(i).value.substring(2), 16))
Next

msgbox(c)


 回到顶部
帅哥哟,离线,有人找我吗?
liguichuan
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3168 威望:0 精华:1 注册:2011/4/20 1:40:00
  发帖心情 Post By:2015/2/12 20:18:00 [只看该作者]

使用了正则表达式。那如果是字符串里面含有其它的非unicode字符同时又含有unicode字符要如何改写代码?正则我不懂。

例如:"abc我告诉你一件事哦!\u8717\u725B\u8BF4\u7EE7\u7EED"[也有可能是:"abc我告诉你一件事哦!\u8717\u725B\u8BF4\u7EE7\u7EED。你信不信?”]
像上面这个字符串,怎么写才能不丢失任何信息。
能不能逐个查找,然后用字符串替换的方式重新生成。
谢谢。
[此贴子已经被作者于2015/2/12 20:22:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 20:30:00 [只看该作者]

Dim str As String = "abc我告诉你一件事哦!\u8717\u725B\u8BF4\u7EE7\u7EED啥都....顶顶顶顶ss34地方"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "\\u.{4}|[^\\u]+")
Dim c As String = ""
For i As Integer = 0 To mc.count - 1
    Dim v As String = mc(i).Value
    If v.StartsWith("\u") Then
        c &= chrw(Convert.ToInt32(v.substring(2), 16))
    Else
        c &= v
    End If
Next

msgbox(c)


 回到顶部
帅哥哟,离线,有人找我吗?
liguichuan
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3168 威望:0 精华:1 注册:2011/4/20 1:40:00
  发帖心情 Post By:2015/2/12 20:38:00 [只看该作者]

谢谢,达到要求,能大致解释一下吗?特别是“Convert.ToInt32(v.substring(2), 16)”

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 20:57:00 [只看该作者]

1、将16进制转成整数;

 

2、将整数整数转成汉字


 回到顶部
帅哥哟,离线,有人找我吗?
liguichuan
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3168 威望:0 精华:1 注册:2011/4/20 1:40:00
  发帖心情 Post By:2015/2/12 21:32:00 [只看该作者]

如果字符串中含有“u"(非\u时字母u)也会给处理掉,这个怎么修改?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 21:51:00 [只看该作者]

Dim str As String = "abc我\告诉你一件事哦!uuuu\u8717\u725B\u8BF4\u7EE7\u7EED啥都....顶顶顶顶ss34地方"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "\\u.{4}|.+?")
Dim c As String = ""
For i As Integer = 0 To mc.count - 1
    Dim v As String = mc(i).Value
    If v.StartsWith("\u") Then
        c &= chrw(Convert.ToInt32(v.substring(2), 16))
    Else
        c &= v
    End If
Next

msgbox(c)


 回到顶部