【问题标题】:pass unicode parameter to Java command line将 unicode 参数传递给 Java 命令行
【发布时间】:2016-10-09 06:47:17
【问题描述】:

使用 JDK 1.8 和 OSX。对于args,其中之一是unicode(中文、日文等)字符。想知道如何通过它们?我在 SO 上搜索了一些解决方案,但没有工作。

我试过了,

  1. 执行java命令运行class文件时添加-Dfile.encoding=UTF-8;
  2. 通过 `` 的引号和 "" 的引号传递 unicode 参数。

在我的代码中,我尝试在main 的开头打印args.length,它总是打印出零。

问候, 林

【问题讨论】:

  • 你找到解决办法了吗?

标签: java unicode java-8


【解决方案1】:

将您的 LANG 环境变量设置为使用 UTF-8 编码。例如,如果您的语言是美国英语,那么您的 LANG 环境变量可以是 en_US.UTF-8 以表示使用 UTF-8 编码的美国英语语言环境。使用以下命令设置 LANG 变量:

export LANG=en_US.UTF-8

如果您想为您的用户永久设置此功能,请将其添加到您的~/.profile 文件中,以便在该用户每次登录时生效。使用locale -a 命令找出系统上所有可用的语言环境。

【讨论】:

  • 谢谢,如何使用'' 或"" 传递unicode 参数?
  • 用引号括起来的参数用于指定包含空格字符的参数被视为单个参数而不是多个参数。当你想抑制 shell 扩展时,使用单引号而不是双引号。
  • 您可以同时使用单引号和双引号,但如果您想抑制外壳扩展,请使用单引号。有关示例,请参见命令 echo "$LANG" '$LANG' 的输出。
  • 还要检查你的终端设置,不确定它是否应该从环境变量中自动检测字符编码。确保它是set to UTF-8 in the settings dialog。
  • 我看不出为什么它不应该与 java 一起使用,就像它与其他所有命令一样。可能是特定于您的环境的东西。
猜你喜欢
  • 2010-12-11
  • 1970-01-01
  • 2015-06-09
  • 2017-10-22
  • 2019-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多