pb中如何实现g2312到utf8到的编码转换???急

yanmingming2004 2009-05-30 04:02:55
pb中如何实现g2312到utf8到的编码转换???急
...全文
2068 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldMobile 2009-07-26
  • 打赏
  • 举报
回复
用adosteam
integer li_rtn
OLEObject ole_ADOStream
ole_ADOStream = CREATE OLEObject
li_rtn = ole_ADOStream.ConnectToNewObject("ADODB.Stream")
ole_ADOStream.Type = 1 //二进制数据Binary
ole_ADOStream.Mode =3 //具有读/写权限
ole_ADOStream.Open()
ole_ADOStream.LoadFromFile("c:\1.txt")
ole_ADOStream.Position = 0 //Position为0才能设置Charset
ole_ADOStream.Type = 2 //文本数据
ole_ADOStream.Charset = "UTF-8"
ole_ADOStream.SaveToFile("c:\2.txt",2)
ole_ADOStream.Close()
destroy ole_ADOStream

以上代码可把任何格式的文件转成utf-8,请参考
pb8 2009-07-23
  • 打赏
  • 举报
回复
发个asp的实现,转为pb就可以了


UTF转GB2312 将UTF8编码文字转换为GB编码文字的asp代码
function UTF2GB(UTFStr)
for Dig=1 to len(UTFStr)
'如果UTF8编码文字以%开头则进行转换
if mid(UTFStr,Dig,1)="%" then
'UTF8编码文字大于8则转换为汉字
if len(UTFStr) >= Dig+8 then
GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))
Dig=Dig+8
else
GBStr=GBStr & mid(UTFStr,Dig,1)
end if
else
GBStr=GBStr & mid(UTFStr,Dig,1)
end if
next
UTF2GB=GBStr
'老吧提供
end function

GB2312转UTF8的asp代码 将GB编码文字转换为UTF8编码文字
Function toUTF8(szInput)
Dim wch, uch, szRet
Dim x
Dim nAsc, nAsc2, nAsc3
'如果输入参数为空,则退出函数
If szInput = "" Then
toUTF8 = szInput
Exit Function
End If
'开始转换
For x = 1 To Len(szInput)
'利用mid函数分拆GB编码文字
wch = Mid(szInput, x, 1)
'利用ascW函数返回每一个GB编码文字的Unicode字符代码
'注:asc函数返回的是ANSI 字符代码,注意区别
nAsc = AscW(wch)
If nAsc < 0 Then nAsc = nAsc + 65536

If (nAsc And &HFF80) = 0 Then
szRet = szRet & wch
Else
If (nAsc And &HF000) = 0 Then
uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
szRet = szRet & uch
Else
'GB编码文字的Unicode字符代码在0800 - FFFF之间采用三字节模版
uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
Hex(nAsc And &H3F Or &H80)
szRet = szRet & uch
End If
End If
Next
toUTF8 = szRet
End Function
leef_zh 2009-07-13
  • 打赏
  • 举报
回复
我有办法,下午来贴给你,先吃饭
leef_zh 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lzp_lrp 的回复:]
pb10可以利用blob和string函数转换
String ( blob {,encoding} )

Argument Description
blob The blob whose value you want returned as a string. Blob can also be an Any variable containing a blob.
encoding Character encoding of the blob you want converted. Values are:
EncodingANSI!
EncodingUTF8!
EncodingUTF16LE! (default)
EncodingUTF16BE!

10以下估…
[/Quote]

这个是把EncodingUTF8,EncodingANSI,EncodingUTF16BE,这些字符转换成EncodingUTF16LE显示吧!
eviler 2009-07-13
  • 打赏
  • 举报
回复
对了 忘记了 ,fileopen的时候 把参数 都写全了 ,不要使用默认
eviler 2009-07-13
  • 打赏
  • 举报
回复
把乱码文档 filewrite 到 一个 文本中 ,一般可以解决
hacker3333 2009-07-13
  • 打赏
  • 举报
回复
建议升级到10
圣殿骑士18 2009-07-13
  • 打赏
  • 举报
回复
mark
shamy123456 2009-07-13
  • 打赏
  • 举报
回复
好像pb9用API函数是能转化的
yanmingming2004 2009-06-01
  • 打赏
  • 举报
回复
如果是10的话就好了,我用的是9,给客户做的短信接口,需要转,不然是乱码,请各位大虾帮帮忙,有没有其他的办法!!!!!
zhanghua_1228 2009-05-31
  • 打赏
  • 举报
回复
10以下的话就比较麻烦,utf-8里面有很多0x00
10以下的string 就当是结束符了,要么用blob

用10以上的写个com控件来转吧,当blob来处理吧
WorldMobile 2009-05-30
  • 打赏
  • 举报
回复
pb10可以利用blob和string函数转换
String ( blob {,encoding} )

Argument Description
blob The blob whose value you want returned as a string. Blob can also be an Any variable containing a blob.
encoding Character encoding of the blob you want converted. Values are:
EncodingANSI!
EncodingUTF8!
EncodingUTF16LE! (default)
EncodingUTF16BE!

10以下估计无此功能

743

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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