PB6.5读取UTF8

wolfboy1981 2009-05-25 08:14:26
当前遇到一个问题:
PB6.5无法读取其他程序传过来的UTF8格式的字符串,请问这是怎么回事?
有什么办法可以读到呢?
...全文
366 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolfboy1981 2009-05-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lzp_lrp 的回复:]
直接用adostream就可以实现,为什么还要用pb11写com?用pb11写com的话,还需要pb11的动态库

integer li_rtn

OLEObject ole_ADOStream
ole_ADOStream = CREATE OLEObject
li_rtn = ole_ADOStream.ConnectToNewObject("ADODB.Stream")
ole_ADOStream.Position = 0 //Position为0才能设置Charset
ole_adostream.Type = 2 //二进制数据Binary
ole_ADOStream.Mode =3 //具有读/写权…
[/Quote]
string inputdata,strOut
inputdata = ls_yljgbh + "," + ls_czybh + "," + ls_ywbh + "," + ls_yyjylsh + "," + string(ldt_sj,'YYYYMMDDHHMMSS')
messagebox("inputdata","****"+inputdata+"***")
boolExeSucc = lo_interface.Execute(inputdata,strOut)
lo_interface 是dll的一个实例,也就是调用另一个接口,2参数都是字符的(第一个是入参,第二个是出参(接口处理后的结果)),PB6.5用strOut接受不着这个.
WorldMobile 2009-05-29
  • 打赏
  • 举报
回复
直接用adostream就可以实现,为什么还要用pb11写com?用pb11写com的话,还需要pb11的动态库

integer li_rtn

OLEObject ole_ADOStream
ole_ADOStream = CREATE OLEObject
li_rtn = ole_ADOStream.ConnectToNewObject("ADODB.Stream")
ole_ADOStream.Position = 0 //Position为0才能设置Charset
ole_adostream.Type = 2 //二进制数据Binary
ole_ADOStream.Mode =3 //具有读/写权限
ole_ADOStream.Charset = "UTF-8"
ole_ADOStream.Open()
ole_ADOStream.WriteText("你的utf_8")
ole_ADOStream.Position = 0 //Position为0才能设置Charset
ole_ADOStream.Type = 2 //文本数据
ole_ADOStream.Charset = "GB2312"
ole_ADOStream.readtext(ls_data) //ls_data即为你想要的东东
ole_ADOStream.Close()
destroy ole_ADOStream
wolfboy1981 2009-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhanghua_1228 的回复:]
。。。。。。
我是用pb11写了个com把文件转成asc,你也可以这么试试
[/Quote]

能共享下吗?rickchaang@163.com.谢谢了
zhangyh_136 2009-05-26
  • 打赏
  • 举报
回复
升级吧,11.5
zhanghua_1228 2009-05-26
  • 打赏
  • 举报
回复
。。。。。。
我是用pb11写了个com把文件转成asc,你也可以这么试试
WorldMobile 2009-05-25
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20060707/15/4866782.html
WorldMobile 2009-05-25
  • 打赏
  • 举报
回复
晕,好像不好实现,用吧,把utf8转成ansi,然后再处理

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

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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