首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式设置日语应用程序名称?

如何以编程方式设置日语应用程序名称?
EN

Stack Overflow用户
提问于 2012-06-12 22:12:02
回答 2查看 502关注 0票数 3

目前,我正在尝试使用以下命令设置应用程序名称

代码语言:javascript
复制
net.rim.blackberry.api.homescreen.HomeScreen.setName("これはある");

但是它抛出了异常:IllegalArgumentException

有人能提供解决方案吗?

我使用的是Blackberry JDE 5.0。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-12 22:32:56

这可能是一个字符串编码问题。试一试

new String(new String("これはある").getBytes("UTF-16BE"), "UTF-16BE");

它不是很漂亮,但我想它会起作用的。

以下是黑莓字符串规范的链接:http://www.blackberry.com/developers/docs/5.0.0api/java/lang/String.html

默认情况下,它是ISO-8859-1,不包括日语字符。

票数 3
EN

Stack Overflow用户

发布于 2012-06-14 00:55:23

您面临的问题是如何将源代码中表示的字符串放入具有相同字符的应用程序中。对于拉丁字符,这非常简单,因为我们只需将字符放在引号中,然后得到一个字符串,如"Hello world“

当你使用非拉丁语时,比如日语,就会变得更难。您仍然可以在源代码中直接编写日语,但您需要确保编辑器和编译器就编码达成一致,以便正确解释字符。Java-SE编译器有一个参数"-encoding“,它允许您指定java源文件的编码。

不幸的是,BlackBerry编译器rapc没有提供指定编码的选项,即使它调用的是javac本身。因此,rapc使用平台默认值,在Linux和OSX上是utf-8,在Windows上是iso-8859-1。

解决这个问题的方法是使用Java语言的一个特性来解析字符串- unicode转义。通过在字符串中输入六个字符的序列"\u3053“,java编译器将把该数字解析为十六进制,并使用相应的unicode代码点,从而解决源文件编码问题。所以"Hello world“和"\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064”将导致相同的字符串出现在您的类文件中。

正因为如此,Svetlin在评论中的答案是这里的正确方法:

代码语言:javascript
复制
net.rim.blackberry.api.homescreen.HomeScreen.setName("\u3053\u308C\u306F\u3042\u‌​308B");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10998467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档