VB中使用
InputB函数返回乱码的
问题
如果要读在VB中读文本文件,用LineInput语句再循环--太慢;用Input函数--Input函数是指定字符数读取的,但自己又不知道文件的字符数,只知道字节数。这时候就应该用InputB函数了,这个函数是指定字节读取的,比如说一个汉字,再VB中是一个字符,却是两个字节,所以要用InputB再配合Loc函数读取。
但是InputB怎么返回的都是乱码啊?上MSDN一查,里面有一个“处理使用双字节字符的文件”的文章(地址:\\VBcon98.chm::/Html/VBconprocessingfilesthatusedoublebytecharacters.htm),原来InputB函数返回的是ANSI字符串,但我们需要的是UNICODE字符串,当然显示乱码了!这时需要再加个StrConv函数才可以正常显示,StrConv函数使用方法为:
语法
StrConv(string, conversion, LCID)
StrConv 函数的语法有下面的命名参数:
部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)
设置值
conversion 参数的设置值为:
常数 值 说明
VBUpperCase 1 将字符串文字转成大写。
VBLowerCase 2 将字符串文字转成小写。
VBProperCase 3 将字符串中每个字的开头字母转成大写。
VBWide* 4* 将字符串中单字节字符转成双字节字符。
VBNarrow* 8* 将字符串中双字节字符转成单字节字符。
VBKatakana** 16** 将字符串中平假名字符转成片假名字符。
VBHiragana** 32** 将字符串中片假名字符转成平假名字符。
VBUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
VBFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。
> >