十豆三老师曾分享过“UTF-8、Unicode、Ansi的互相转换”的代码,当中好像缺了一项:Unicode (Big Endian)怎么转换?
本帖最后由 apple_8180 于 2012-09-29 08:22:44 编辑 http://topic.csdn.net/u/20111115/13/A4FE5FCB-E640-4B83-A7D0-FB4DBEFBA91A.html
为了转换各类编码,我专门安装了一个VFP9/SP2,然而遗憾的是:VFP 9的STRCONV( )函数,并没有提供Unicode (Big Endian)相关的转换参数。
或者,退而求其次,有没有能够“飞速”将一个大字符串(比如说,几百KB甚至几MB)当中,所有十六位Word的高8位(Byte)与低8位(Byte)进行字节互换的函数?
那样就能自行实现Unicode (Big Endian)与Unicode (Little Endian)之间的互换。
[解决办法]
lcStr='abc十豆三123'
*-- 生成的 Unicode big endian 编码文件.txt:20字节(每个英文、数字及汉字占2个字节,另加上BOM长度2)
lcUnicode=Strconv(lcStr,5)
lnStrLen=Len(lcUnicode)
lcUnicodeBig=''
For lnI=1 To lnStrLen Step 2
lcUnicodeBig=lcUnicodeBig+Substr(lcUnicode,lnI+1,1)+Substr(lcUnicode,lnI,1)
Endfor
=Strtofile(Chr(0xFE)+Chr(0xFF)+lcUnicodeBig,'c:\Unicode big endian 编码文件.txt')