Java 在GAE上存储文本,正在更改非标准unicode字符

Java 在GAE上存储文本,正在更改非标准unicode字符,java,google-app-engine,rest,Java,Google App Engine,Rest,我在GoogleAppEngine上有一个servlet,它从页面中获取文本,将其存储为一个实体,然后将其发送回客户端。当我存储单词“You's”时,我会像平常一样在GAE localstore中显示为“You's”。然而,当我将它返回给客户机时,我得到了“You–re”,调试代码有时会读取“You–re”。我正在使用Java文本类来存储此文本 如何确保任何Unicode字符都能正确存储?看起来客户端->服务器很好,因为文本没有改变,但是服务器->客户端肯定出了问题。谢谢 我看到这个问题的大多数

我在GoogleAppEngine上有一个servlet,它从页面中获取文本,将其存储为一个实体,然后将其发送回客户端。当我存储单词“You's”时,我会像平常一样在GAE localstore中显示为“You's”。然而,当我将它返回给客户机时,我得到了“You–re”,调试代码有时会读取“You–re”。我正在使用Java文本类来存储此文本


如何确保任何Unicode字符都能正确存储?看起来客户端->服务器很好,因为文本没有改变,但是服务器->客户端肯定出了问题。谢谢

我看到这个问题的大多数时候,要么页面没有声明它正在使用UTF-8,比如

或者表单中未设置接受字符集


这两种情况都可能发生吗?

我甚至没有看过GAE,但如果它在GAE商店中显示良好,但用户看不到,您是否可以在将文本数据发送到客户端之前对其进行更改?可能问题在于您的应用程序和浏览器中的字符编码不同,检查两者是否相等。如果我的meta标记设置为utf-8,那么它应该在客户端上正确显示Unicode。我假设服务器上也有,因为它在那里正确显示。jetty使用ISO-8859-1作为默认值。在响应和请求时尝试setCharacterEncoding(“UTF-8”),发现问题。奇怪的是,删除已经存在的
setCharacterEncoding(“UTF-8”)
行使整个工作得以进行。谢谢你的帮助!我使用主干网将我的模型发送到服务器,所以基本上它只是与collection.create()一起发送。它最终只是将自身作为JSON对象发送到服务器,所以我不确定是否有任何accept字符集。我有元标签在那里,但这并没有改变任何奇怪的不够。客户端上的控制台日志也不喜欢这些字符。也许它们被奇怪地从服务器发送到客户端?如果控制台日志不满意,我会仔细观察最初将数据传送到服务器的路径。