Windows Docker图像、更改语言、区域设置、标准编码

Windows Docker图像、更改语言、区域设置、标准编码,docker,encoding,localization,vb6,locale,Docker,Encoding,Localization,Vb6,Locale,我正试图在Docker中构建我们的DotNet&VB6项目。我安装了vb6,这在windows服务器内核上不起作用,所以我不得不使用纯windows映像。因此,我们不能使用本地化的服务器核心映像来解决这些问题。因为据我所知,Windows映像本身没有本地化映像 这一切都构建得很好,但有一个错误,对于VB6中字符串的每一个ü,ä,ö,ß,我只得到� 在运行时。 我试图将.cls文件的编码更改为UTF8,这在运行时起作用,但现在VB6 IDE只显示ü 在Powershell中: Get-WinSy

我正试图在Docker中构建我们的DotNet&VB6项目。我安装了vb6,这在windows服务器内核上不起作用,所以我不得不使用纯windows映像。因此,我们不能使用本地化的服务器核心映像来解决这些问题。因为据我所知,Windows映像本身没有本地化映像

这一切都构建得很好,但有一个错误,对于VB6中字符串的每一个ü,ä,ö,ß,我只得到� 在运行时。 我试图将.cls文件的编码更改为UTF8,这在运行时起作用,但现在VB6 IDE只显示ü

在Powershell中:

Get-WinSystemLocale

Docker: 1033             en-US            English (United States)

My Workstation: 1031             de-DE            Deutsch (Deutschland)
所以我尝试设置WinSystemLocale,但没有成功

[System.Text.Encoding]::Default

Docker: utf-8

My Workstation: Windows-1252
但这似乎是唯一的

.cls文件使用的默认编码是ANSI,我不理解的是,它只是使用默认编码?如果是,在哪里可以找到此默认值,并且可以更改它

另外,我不知道这是否提供了任何帮助,但我已经读到VB6在内部使用Unicode

有什么想法或者我错过了什么吗?这个项目不会因为编码问题而消亡。 此外,目前还不能选择迁移到DotNet

编辑:

已经试过了。

VB6在读取CLS文件时使用“ANSI”编码,即Windows控制面板中设置的默认代码页。我怀疑对cls文件使用UTF8。我不确定IDE和编译器是否会喜欢这样。如果Windows 1252支持您需要的字符,我建议您使用它。的确,VB6在运行时在内部以Unicode存储其字符串,但出于许多目的,字符串会转换为“ANSI”,即Windows中的当前代码页。据我所知,您不能在VB6源文件中硬编码像ü、ä、ö、ß这样的字符。改用
CHR$()
或其变体。VB6中的硬编码Umlauts在普通Windows机器(包括Windows 10)上运行良好。所以Docker在幕后做了些花哨的事@lukas hankeln:如果你用Docker图像中的文本查看器查看源代码文件,里面有什么?