Ric*_*lis 5 google-app-engine utf-8 google-cloud-datastore
我正在构建一个gwt应用程序,它将随机网页的文本存储在数据存储区文本字段中.通常文本格式为UTF-8.我的应用程序的所有文件都存储为UTF-8,当我在本地计算机上运行应用程序时,整个过程运行正常.UTF-8文本以这样的形式存储,并可以作为UTF-8从应用引擎的本地版本中检索.但是,当我将应用程序部署到谷歌应用程序引擎之间的某处,当我存储文本和检索它时,它不再是UTF-8,导致非ascii字符显示为?
当我在appengine控制面板中查看数据存储区时,所有特殊字符都显示为?这让我相信在写入数据库时这是一个问题.
有谁知道如何解决这一问题?
该应用程序本身有点大.这是一些伪代码:
Text webPageText = new Text(<STRING THAT CONTAINS UNICODE CHARACTERS>);
/*Some Code to store Text object on datastore
Specifically I'm using javax.jdo.PersistenceManager to do this.
Some Code to retrieve text from datastore. */
String retrievedText = webPageText.getValue();
Run Code Online (Sandbox Code Playgroud)
问题是retrieveText回来了吗?而不是unicode字符.
我在python中发现了类似的问题:尝试将Utf-8数据存储在数据存储区中,获取UnicodeEncodeError.虽然我的应用程序没有收到任何错误.
不幸的是我认为Java字符串是默认的utf-8,我找不到任何代码可以让我明确地将它们声明为utf-8.
编辑:我现在构建了一个小型webapp,它接收unicode文本并将其存储在数据存储区中,然后检查它没有任何问题.我仍然不知道我的原始源代码中的问题在哪里,但我将改变我的代码处理网页检索的方式,以匹配我刚刚构建的较小的应用程序.感谢大家的帮助.
归档时间: |
|
查看次数: |
8166 次 |
最近记录: |