Functions.Ansi2Oem 方法 (String) | |
将ANSI字符串转换为OEM字符串。
命名空间:
XSharp.Core
程序集:
XSharp.Core (在 XSharp.Core.dll 中) 版本:2.22 GA
语法 FUNCTION Ansi2Oem(
cAnsiString AS STRING
) AS STRING
public static string Ansi2Oem(
string cAnsiString
)
查看代码参数
- cAnsiString
- 类型:String
ANSI字符源字符串。
返回值
类型:
String
转换后的OEM字符串。
备注
Ansi2Oem() 将源字符串中的各个字符转换为OEM字符集中的匹配字符。
这可能是必要的,因为某些符号(如ä)在ANSI和OEM字符集中有不同的代码值。DOS应用程序在创建包含ä的文件名时使用OEM代码值,并在目录项中放置132。但Windows应用程序使用ANSI代码值,ä对应228,因此无法找到该文件。
为解决这个问题,您可以使用Ansi2Oem()将ANSI文件名转换为OEM字符集。
此外,如果Windows应用程序写入文件的字符是ANSI字符集,当DOS应用程序读取文件时可能会出现相同的字符转换问题。
备注 警告: |
---|
Ansi2Oem() 和 Oem2Ansi() 函数系列是兼容性函数。除非你真的必须使用它们,否则不要使用。
X# 是一个 Unicode 语言,如果你使用这些函数,将进行 Unicode - Ansi - Oem - Unicode 的转换。
你还应该意识到,Ansi2Oem(Oem2Ansi(cSource)) 不总是会返回 cSource。一些字符可能
在 OEM 代码页中不可用,可能会被转换为其他字符。
例如:Windows 代码页 1252 在位置 203 上有大写 E Umlaut (Ë)。
当转换为 OEM 代码页 437 时,这将变为没有 Umlaut 的大写 E (69)。再次转换为 Ansi 将保持为没有 Umlaut 的 E。
|
示例
这个例子将字符串"aá.TXT"写入DOS文件。注意,á在ANSI字符集中的代码值为225,而在OEM字符集中,代码值225对应ß字符。
FWrite()函数假定为原始二进制数据,因此不会自动将ANSI转换为OEM。(如果需要,您可以自己进行转换或使用其他函数,如FWriteText()。)
1FWrite(ptrFileHandle, Ansi2Oem("aá.txt"))
参见