9 个解决方案
#1
是奇数时最后加个汉字的空格,补齐,转换后再去掉
#2
版主的机巧变通之道,佩服!
#3
谢谢提示,我了是想破了脑袋这样做了,但我现在是在做接口,把UTF-8数据通过url传到别人服务器中,去掉所加的字符(空格还不行,我加的是|),但人家不愿意,现在有好几个软件公司都在做,他们的都可以,就我有这个问题,真头痛,还有什么办法吗?或者给我提供一个转换成UTF8的函数等
#4
求把字符转换成UTF-8的代码。我现在用API做了,对于汉字个数是偶数没问题,但当汉字个数是奇数最后一个字就是乱码。
是奇数时最后加个汉字的空格,补齐,转换后再去掉
谢谢提示,我了是想破了脑袋这样做了,但我现在是在做接口,把UTF-8数据通过url传到别人服务器中,去掉所加的字符(空格还不行,我加的是|),但人家不愿意,现在有好几个软件公司都在做,他们的都可以,就我有这个问题,真头痛,还有什么办法吗?或者给我提供一个转换成UTF8的函数等
可以用adosteam来实现
用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
#5
谢谢,我试试,没用过ole,这次学习一下。另外用字符转换方法也做了,但一提交到服务器就乱码,但把那一串转换好的字符轮到地址栏直接做就是好的。我是用getulr提交的,现在想着用plstulr试试,但写格式可能不对,反回值不对,你帮我看看,我的代码哪里不对。
blob lblb_args
long ll_length
string ls_headers
lblb_args = blob( "serviceName=cquery&objectApiName=Sgdbase&expressions=slistnum='"+ list_id +"'"+" and purchase_date='"+ ls_bank_sg_date +"'"+" and qymc='"+ls_utf8_unit+"'&binding="+ls_binding)
messagebox('',string(lblb_args))
ll_length = Len(lblb_args)
ls_headers = "Content-Length:" + String(ll_length)
li_ret =ln_inet.posturl("http://app3.cloudcc.com/distributor.action?",lblb_args,ls_headers,ln_iquery)
blob lblb_args
long ll_length
string ls_headers
lblb_args = blob( "serviceName=cquery&objectApiName=Sgdbase&expressions=slistnum='"+ list_id +"'"+" and purchase_date='"+ ls_bank_sg_date +"'"+" and qymc='"+ls_utf8_unit+"'&binding="+ls_binding)
messagebox('',string(lblb_args))
ll_length = Len(lblb_args)
ls_headers = "Content-Length:" + String(ll_length)
li_ret =ln_inet.posturl("http://app3.cloudcc.com/distributor.action?",lblb_args,ls_headers,ln_iquery)
#6
学习了!!!!
#7
不好意思,请问adosteam是什么?我的ole没有啊
#8
我找到adostem了,你给我的代码里取的是txt文件里的字符,转换后又写到txt件里,我刚试了一下,转换后没有写到文件里,只是那个文件字符编码格式确实是utf8格式的了
#9
ole_ADOStream.WriteText('中国') //写入字符串
#1
求把字符转换成UTF-8的代码。我现在用API做了,对于汉字个数是偶数没问题,但当汉字个数是奇数最后一个字就是乱码。
是奇数时最后加个汉字的空格,补齐,转换后再去掉
#2
版主的机巧变通之道,佩服!
#3
求把字符转换成UTF-8的代码。我现在用API做了,对于汉字个数是偶数没问题,但当汉字个数是奇数最后一个字就是乱码。
是奇数时最后加个汉字的空格,补齐,转换后再去掉
谢谢提示,我了是想破了脑袋这样做了,但我现在是在做接口,把UTF-8数据通过url传到别人服务器中,去掉所加的字符(空格还不行,我加的是|),但人家不愿意,现在有好几个软件公司都在做,他们的都可以,就我有这个问题,真头痛,还有什么办法吗?或者给我提供一个转换成UTF8的函数等
#4
求把字符转换成UTF-8的代码。我现在用API做了,对于汉字个数是偶数没问题,但当汉字个数是奇数最后一个字就是乱码。
是奇数时最后加个汉字的空格,补齐,转换后再去掉
谢谢提示,我了是想破了脑袋这样做了,但我现在是在做接口,把UTF-8数据通过url传到别人服务器中,去掉所加的字符(空格还不行,我加的是|),但人家不愿意,现在有好几个软件公司都在做,他们的都可以,就我有这个问题,真头痛,还有什么办法吗?或者给我提供一个转换成UTF8的函数等
可以用adosteam来实现
用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
#5
谢谢,我试试,没用过ole,这次学习一下。另外用字符转换方法也做了,但一提交到服务器就乱码,但把那一串转换好的字符轮到地址栏直接做就是好的。我是用getulr提交的,现在想着用plstulr试试,但写格式可能不对,反回值不对,你帮我看看,我的代码哪里不对。
blob lblb_args
long ll_length
string ls_headers
lblb_args = blob( "serviceName=cquery&objectApiName=Sgdbase&expressions=slistnum='"+ list_id +"'"+" and purchase_date='"+ ls_bank_sg_date +"'"+" and qymc='"+ls_utf8_unit+"'&binding="+ls_binding)
messagebox('',string(lblb_args))
ll_length = Len(lblb_args)
ls_headers = "Content-Length:" + String(ll_length)
li_ret =ln_inet.posturl("http://app3.cloudcc.com/distributor.action?",lblb_args,ls_headers,ln_iquery)
blob lblb_args
long ll_length
string ls_headers
lblb_args = blob( "serviceName=cquery&objectApiName=Sgdbase&expressions=slistnum='"+ list_id +"'"+" and purchase_date='"+ ls_bank_sg_date +"'"+" and qymc='"+ls_utf8_unit+"'&binding="+ls_binding)
messagebox('',string(lblb_args))
ll_length = Len(lblb_args)
ls_headers = "Content-Length:" + String(ll_length)
li_ret =ln_inet.posturl("http://app3.cloudcc.com/distributor.action?",lblb_args,ls_headers,ln_iquery)
#6
学习了!!!!
#7
不好意思,请问adosteam是什么?我的ole没有啊
#8
我找到adostem了,你给我的代码里取的是txt文件里的字符,转换后又写到txt件里,我刚试了一下,转换后没有写到文件里,只是那个文件字符编码格式确实是utf8格式的了
#9
ole_ADOStream.WriteText('中国') //写入字符串