gpt4 book ai didi

Java:本地应用程序和谷歌应用引擎之间的字符串 UTF-8 编码差异

转载 作者:搜寻专家 更新时间:2023-11-01 02:15:48 24 4
gpt4 key购买 nike

我正在尝试让 Google App Engine 网络应用程序将 UTF-8 编码的文本发送回浏览器。我这样做,是这样写的:

byte[] utf8Bytes = "æøå".getBytes("UTF-8");

当我在本地执行此操作时,我得到一个返回 6 个字节的字节数组。当我在 Google App Engine 上执行此操作时,我得到一个返回 12 个字节的数组。很奇怪,嗯?

有人知道为什么吗?

我已经通过自己对字节进行编码,成功地从 GAE 中编写了 UTF-8 编码的文本,并将原始字节写回。像这样:

output.write(new byte[]{(byte)0xc3, (byte)0xa5, (byte) 0xc3, (byte)0xa6, (byte)0xc3, (byte)0xb8 });

这确实有效。但是,有没有人知道为什么字符串在 GAE 上的编码与在本地的编码不同?

注意:通过 unicode 转义对字符进行编码是可行的 - 就像这样:

byte[] utf8Bytes = "\u00E5\u00F8\u00E6".getBytes("UTF-8");

最佳答案

您从 GAE 获得的字节让我假设带有“æøå”文字的源代码文件被保存为 UTF-8,但编译器编译器期望源文件被编码为 ISO-8859- 1、ISO-8859-15 或 Cp1252。

如果您使用 Ant 或 Maven 构建源代码,则必须在 build.xml 或 pom.xml 中指定源文件编码。

关于Java:本地应用程序和谷歌应用引擎之间的字符串 UTF-8 编码差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372194/

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