http://topic.csdn.net/u/20111115/13/A4FE5FCB-E640-4B83-A7D0-FB4DBEFBA91A
为了转换各类编码,我专门安装了一个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')
------解决方案--------------------------------------------------------
win2api 中就两个函数进行多字节字符串与宽字符字符串的互换,它们是 MultiByteToWideChar 和 WideCharToMultiByte,但都没有涉及低字节序和高字节序的参数
------解决方案--------------------------------------------------------
不知道新版有此功能不。目前版本只有版主可以。