当前位置: 代码迷 >> VFP >> 十豆三老师曾分享过“UTF-8、Unicode、Ansi的互相转换”的代码,当中好像缺了一项:Unicode (Big Endian)如何转换
  详细解决方案

十豆三老师曾分享过“UTF-8、Unicode、Ansi的互相转换”的代码,当中好像缺了一项:Unicode (Big Endian)如何转换

热度:8730   发布时间:2013-02-26 00:00:00.0
十豆三老师曾分享过“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

为了转换各类编码,我专门安装了一个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,但都没有涉及低字节序和高字节序的参数
------解决方案--------------------------------------------------------
本帖最后由 apple_8180 于 2012-09-29 10:37:45 编辑
引用:
CSDN如何将搜索限定在“本版块内”?
呵呵,我一搜Unicode,首先看到的当然是C#、C++、VB、Delphi……VFP的资料很难找啊。
不知道新版有此功能不。目前版本只有版主可以。
  相关解决方案