点击或拖拽改变大小

Functions.Ansi2Oem 方法 (String)

X#
将ANSI字符串转换为OEM字符串。

命名空间:  XSharp.Core
程序集:  XSharp.Core (在 XSharp.Core.dll 中) 版本:2.22 GA
语法
 FUNCTION Ansi2Oem(
	cAnsiString AS STRING
) AS STRING
查看代码

参数

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()。)
X#
1FWrite(ptrFileHandle, Ansi2Oem("aá.txt"))
参见