gpt4 book ai didi

visual-studio-2010 - 尽管字符集正确,德语元音仍显示错误

转载 作者:行者123 更新时间:2023-12-05 01:07:20 28 4
gpt4 key购买 nike

我在文件编码方面遇到了一个奇怪的问题。
我有一个多语言网站;用户可以通过站点本身的下拉菜单进行设置,默认值为德语。
当用户登录时,会根据语言(字符集、代码页和 LCID)设置一些设置。在这一点上,我还想指出,我所有的文件都是 ANSI 编码的。
最近,我不得不做出一些改变。
所以我开火 Visual Studio 2010 , 编辑有问题的文件并使用 Filezilla 将它们上传到我的服务器。
现在,突然之间,德语变音符号 ( Ää, Öö, Üü, ß ) 显示不正确(类似于 ä ) - 但仅限于我用 VS2010 打开的文件。
我检查了网站本身的字符集,并用 Response.CharSet 显示它它是 ISO-8859-1 , 哪个是正确的。

所以我尝试了一些转换 notepad++ ,但没有成功。
我知道将字符集设置为 UTF-8会解决这个问题,但是 a) 字符集是从数据库值设置的,b) 它在其他语言中有点困惑。

最佳答案

您正在显示一个带有 iso-8859-1 View 的 utf-8 编码文件。通常你只想看到一个字符,但为什么你会看到两个而不是一个?这是因为在 utf-8 中,带有“两个点”的德语小字母“a”是带有 utf-8(0xC3 和 0xA4)的 2 字节序列。如果这不是显示为 utf-8 而是显示为 iso-8859-1 编码 - 这意味着一个字节一个字符 - 你会得到你提到的。您将获得作为单个 iso-8859-1 字符的 startbyte 0xC3 和作为单个 iso-8859-1 字符的后续字节 0xA4。在 utf-8 中,这个 2 字节序列必须通过提取 startbyte 和以下字节的有效载荷位来解码,如下所示:

起始字节:11000011
以下:10100100

所以必须去掉 startbyte 的 110,所以剩下 11。
所以接下来的 10 个字节必须被剥离,所以剩下 100100。

链接在一起就变成了 11100100,它是十进制的 228,它应该等于德语字符 'a with two dot' unicode codepoint。

我建议让编码保持原样,utf-8。它只是您的查看器/编辑器的编码应该将 utf-8 编码文件显示为 utf-8 而不是 iso-8859-1。使用 utf-8 配置您的查看器/编辑器。换句话说,根据文件内容的编码(在您的情况下是 utf-8 而不是 iso-8859-1)配置查看器/编辑器的编码。

要转换您的文件或检查它们的特定编码,只需使用 madedit。 madedit 有一个内置的十六进制编辑器,它在 utf-8 序列周围包裹一个矩形,在右侧只显示一个字符(编码的代码点)。在 utf-8 编码文件中识别单字节字符和/或 2/3/4 字节序列很容易。它还围绕 3 字节 utf-8 BOM(如果有)包裹一个矩形。

关于visual-studio-2010 - 尽管字符集正确,德语元音仍显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18851259/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com