[求助] Unicode反转码问题

sunzhemei 2005-01-11 09:14:36
谢谢各位,帮一下忙!
想要各个国家的语言都可以输入进来,不只中,英..而且,不能产生乱码!这是最主要的。
所以:我们先把输入的各国的语言写入进来,在将它保存时要把它转换成Unicode码,再写入文本。可是,要是进行要查看的话,把它读取出来,怎么再把这个Unicode码转变成各国语言呢(前提即最重要的,输入的文字不能乱码,信息可不能丢失啊)我的问题就是怎么将这个已经转换好的Unicode码再 转换回来,
大家能帮一下,想想看吗
谢谢各位!^_^
还没看明白的话,举个实例:这一段韩文“장나라 공식 홈페이지 "나라짱닷컴"”可以把它转换成相应的Unicode码,完了,把这些Unicode码写入文件,(若不转换就写入文本会乱码的)。当要读取时,再把这Unicode码,转换回来,再转换成这一韩文。就这最后一步:“把Unicode码转换成韩文”
这一问题,可以帮一下吗?
再次谢谢各位啦
祝大家天天开心!!
...全文
305 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky9705 2005-09-03
  • 打赏
  • 举报
回复
我改了,给大家一个正确的反码程序。

Public Function Decode(ByVal strSource As String) As String
Dim strResult, strTemp As String, i As Integer, szPart As String, szWord As String
Dim intStart, intEnd, intSize, intNewNumber As Long
Dim nLen As Long

strResult = strSource
nLen = Len(strResult)
For i = 1 To nLen
intStart = InStr(i, strResult, "&#") 'chr(38)=&
If intStart < 1 Then Exit For '不存在"&#",完成,退出循环

intEnd = InStr(intStart, strResult, ";") '在原先"&#"的基础上开始查找;
If intEnd < 1 Then Exit For

If intEnd < intStart Then '跳过含有;号的字符串
intStart = intEnd
Else
szPart = Mid(strResult, intStart + 2, intEnd - intStart - 2) '取得字串
If IsNumeric(szPart) Then
szWord = ChrW(CLng(szPart))
strResult = Replace(strResult, "&#" & szPart & ";", szWord) '替换,要比字串连接快得多,系统资源也占用小
nLen = Len(strResult)
intStart = intEnd
Else
intStart = intStart + 2
End If
End If
Next
Decode = strResult
End Function
sky9705 2005-09-03
  • 打赏
  • 举报
回复
而且字符串出现如这样的字串时会出现错误。。。。
sky9705 2005-09-03
  • 打赏
  • 举报
回复
我回个帖,这个Decode解码函数有问题。
如果原先字串中含有如&#;特别是含有;(分号),这个解码函数就会出错
所以,大家把这个解码函数拿回去后要自己改一下
sunzhemei 2005-01-13
  • 打赏
  • 举报
回复
to: junwhj(http://www.grid2000.com/cn)
还是你厉害啊。已经OK了。
谢谢!^_^
不过,指出一个错误(也许是我的机器的缘故)
有textbox中显示就会乱码的,它不支持多语言!各位,注意一下哦!!
可以换个控件来显示的:richtextbox 可以的!
好!
现在开始结贴!!
谢谢各位^_^
xuxun 2005-01-13
  • 打赏
  • 举报
回复
up
junwhj 2005-01-12
  • 打赏
  • 举报
回复
楼主的意思是要一个解码函数吧:

Private Function Decode(ByVal strSource As String) As String
Dim strResult ,strTemp As String
Dim intStart, intEnd, intSize, intNewNumber As Integer

strResult = strSource
intStart = InStr(strResult, Chr(59))

Do While intStart <> 0
intStart = InStr(strResult, Chr(38))
intEnd = InStr(strResult, Chr(59))

If (intEnd - intStart) > 2 Then
intSize = intEnd - intStart
strTemp = Mid$(strResult, intStart + 2, intSize - 2)
intNewNumber = CInt(strTemp)
strResult = Replace(strResult, strTemp, "", 1, 1)
strResult = Replace(strResult, "&#", ChrW(intNewNumber), 1, 1)
strResult = Replace(strResult, ";", "", 1, 1)
End If
Loop

Return strResult
End Function

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Font = New Font("Arial Unicode MS", 9)
TextBox1.Text = Decode("장나라 공식 홈페이지나라짱닷컴")
End Sub
imssmyd 2005-01-12
  • 打赏
  • 举报
回复
我也有这个问题,该怎么解决呢,期待
programeyonger 2005-01-12
  • 打赏
  • 举报
回复
帮顶。
sunzhemei 2005-01-12
  • 打赏
  • 举报
回复
兴许大家是有点误解了
我的不是只在一台电脑上可以搞定的,我的要求面向各国(就当吧),是各国的人都可以清楚的显示这种多国语言的。
所以....
我是用这个方法来把各国语言成Unicode码的:
<%
function cunicode(str)

dim i,j,c

unicode=""

for i=1 to len(str)
c=mid(str,i,1)
j=ascw(c)
if j<0 then
j=j+65536
end if
if j>=0 and j<=128 then

unicode=unicode&c
else
cunicode=cunicode&"&#"&j&";"
end if
next

end function

%>
然后相对应的要转换的语言只要调用一下该方法就可以啦!
显示自然是Unicode码,可是,我想要把它反转换出来,怎么办呢??
能帮忙吗?
谢谢各位!不吝赐教......
^_^
xuxun 2005-01-12
  • 打赏
  • 举报
回复
起晚了,帮你顶一下^_^
liulxmooo 2005-01-12
  • 打赏
  • 举报
回复
up
hhhh63 2005-01-12
  • 打赏
  • 举报
回复
同意楼上的观点,Win98以后的系统中,都把unicode码作为默认编码,如果原字符数据为其它编码,把它转换为unicode码即可,保存和显示都没有问题,不用再转换回去,当然,如果是WIN98以前的系统或单片机等,还是要转换回去的.
landlordh 2005-01-12
  • 打赏
  • 举报
回复
其实没有必要这么麻烦的

在你的数据中使用unicode编码就可以了

存取数据,然后读取数据

都会正确的显示出来

至于字体,如果你安装了哪种输入法,自然对应会有那种语言的字体
否则你输入的时候也不会显示在文本框中。
如果实在是没有,就安装一个
蒋晟 2005-01-12
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vcsample/html/vcsamshowlocalizedsample.asp
xuxun 2005-01-12
  • 打赏
  • 举报
回复
up
junwhj 2005-01-12
  • 打赏
  • 举报
回复
这个问题我以前遇到过,解决办法是使用Arial Unicode MS字体显示Unicode字符:

Text1.Font = New Font("Arial Unicode MS", 9)
Text1.Text = ChrW(51109) & ChrW(45208)

如果你的系统中没有这种字体,可以在Google中搜索"Arial Unicode MS"或"arialuni.zip",字体文件有20多MB。
Svny 2005-01-11
  • 打赏
  • 举报
回复
我也有这样的问题
sunzhemei 2005-01-11
  • 打赏
  • 举报
回复
抢第一贴:
我写入的韩文 也是用Unicode码表示的吔
大家多多努力啊 争取把这个给破喽 
^_^
请先阅读帮助文档:http://ismyway.com/help [2009.1.1] Ver 3.2.26 ※如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可!※ 增加天语的按键映射 增加三星的背景灯控制功能(该功能未在真机上测试过) 删除图片浏览中的部分功能,由于这部分功能需要较大的内存,导致在大部分手机上无法完成,同时也引起背景图片无法设置成功 触摸屏用户可以不再受滚动条限制,在屏幕上任意地方都可以进行拖动 选择键盘映射为其它时无法再次更改的BUG 用户输入的颜色值无法保存的BUG 修正英文单词分词时会多添加一个空行的BUG 繁体语言措词上的修正 阅读设置中增加一个“文件缓存”选项,默认情况下是开启的,在NOKIA手机上会提高UMD等文件的表现,但由于测试并不充足,如果程序经常在阅读时出错,请关闭该选项(其它手机是否开启该选项并无明显的影响) 修正编辑文件后无法保存的BUG [2008.10.27] Ver 3.2.24 ※如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可!※ 改进的颜色选择方式 允许用户重新选择键盘映射 HTML阅读时的错误 进一步完善编辑功能(仍有少许BUG,请继续反馈,谢谢) 新建文件后自动跳转到编辑中 改进的文件操作方式,速度轻微提升 UMD速度明显提升,并且减少内存占用,特别是在NOKIA手机上,表现提升超过600% 改进的输入框模式,以使得能适应更多的手机如天语等 [2008.10.21] Ver 3.2.23 为了提高运行效率,以下功能在LITE上将被取消(自定义欢迎页问候语;欢迎页背景图) 取消了JAR的支持,提高运行效率 修正打开大ZIP文件时的内存溢出错误 ·修正:  自动滚屏到末尾时,滚屏功能将停止 [2008.10.4] Ver 3.2.22 暂时删除了播放功能及网络相关的功能,由于以上两项功能一直没有能稳定下来,故暂时删除 增强了ZIP功能,支持带文件夹结构的ZIP/JAR文件 (对于大部分JAR电子书都,可以从文件管理器中找到非.class结尾的文件,并且选择打开为UNICODE/TXT阅读) (对于NOKIA手机及其它部分手机,由于安全策略的限制,在Anyview的文件管理器中无法查看后缀为.jar的文件) 自定义问候语(系统路径下dictum.rc文件,格式参见jar包中的dictum.rc文件,保存时使用UTF-8编,可写条目为0~9/a~z/A~Z,置空时表示不显示问候语) ·修正:  0键在各偏好中切换时亮度混乱的问题  部分手机上无法新建文件夹 [2008.9.11] Ver 3.2.21 修正动画参数无法保存的BUG 动画效果不再对阅读翻页有作用 [2008.8.29] Ver 3.2.21 可将正在阅读的内容通过短信与好友分享 增加一种新的滚屏方式:波浪,同时,阅读时3键不再使用默认的像素滚屏,而会使用最后一次使用的滚屏方式 任何可用的外置字库都可以作为内置字库存在,在jar包中存在dot.font会被当为内置字库加载 加快大文件的打开速度,特别是对于NOKIA手机,S60上,打开20M文件,97%左右的位置不超过15秒 允许用户打开动画效果 ·M600/P990/P1/W950  修正键盘映射时“内存不足”的BUG ·E680/A780  选中后台播放后无法启动的BUG [2008.7.30] Ver 3.2.20 调整部分索爱手机上背景灯控制的逻辑 修正看图片时按0键出错的BUG 旋转屏幕引起的字外出 打开LRC最后出错 阅读到尾部弹出“上一个/下一个”窗口中的文件名过长不刷新的问题 偏好切换时亮度混乱的问题 在NOKIA上,当系统路径设置为根目录是无法启动的BUG E398上可以开关键盘灯 UIQ系统在退出时可以保持亮度 索爱上按“返回”键后导致阅读出现白屏的BUG 阅读时切换屏幕方向导致字体超出屏幕的BUG 欢迎屏幕上的日期使用中文显示 如果使用触屏手机,跳转改为进度条模式,以方便触屏操作 系统路径下如果存在bg.png文件,则会作为欢迎界面的背景图片显示(右下角) 减少跳转及翻页中出现乱的机率 提高阅读时绘图效率,滚屏效率同样提高 播放时,暂停会导致声音爆至最大的BUG 内置“忘记月亮”制作的两款主题《典雅红》《黑橙》,并且更换主题不再要求退出 文件管理器中支持“剪切”功能 文件管理器中新增转换UMD为TXT的功能(解开操作,解开2无效!) 增加了编辑功能(尽管没有限制文件大小,但请别编辑过大的文件,另外,为了提高速度,不进行全文排版,有时候表现可能会有些不习惯),以后会进一步完善 启动时,会自动识别NOKIA、SONYER

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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