kag*_*100 13 windows-7 encoding vb.net
我正在 VB.net 中编写一个小应用程序,它使我能够轻松地创建一个带有密码的用户“Windows 7 帐户”,而不是通过控制面板。我遇到的问题是,当我使用 UTF-8 编码在 VB.net 中创建一个 bat 文件时,它不会像预期的那样写 å ä ö。我已经尝试了我能找到的所有编码,但无法让它工作。
如果有人知道我为什么得到这个,请告诉我。提前谢谢!
Rik*_*Rik 13
编辑:我错了;)
cmd.exe不接受UTF-8,但你需要确保将其保存,而不该BOM在文件的开头。
这是第二个测试。您可以chcp 65001在批处理文件的开头使用。

批处理文件不能是 UTF-8 类型。它必须是 ASCII。Cmd.exe只是不接受其他格式。我做了一个小测试,你可以使用你的角色,但需要一些工作。
做一个文件test.bat用echo Å Ä Ö。用格式保存ANSI/ASCII。打开 acmd.exe并确保您的cmd.exe用途Lucida Console(以显示 Unicode 字符)。
当您键入文件时,它会将字符显示为旧的 DOS 字符。您可以在此处查看翻译图表。
当您切换到“Windows Ansi”时,带有字符的代码页(即西欧拉丁语)chcp 1252将正确显示。如果它们也被转移到各自的实用程序,则取决于该实用程序。
但是你为什么要为此创建一个批处理文件?你不能只在 VB.net 中编码吗?

这是您设置Lucida Console的方式cmd.exe:

这BOM是 UTF-8 文件开头的 3 个字符。( \xEF\xBB\xBF).
在VB.net您将创建一个文件,没有一个BOM是这样的:
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
'^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32152 次 |
| 最近记录: |