猿问

作为环境变量传递时无法解码货币符号的 unicode

以下代码适用于卢比符号。


String encode ="\u20B9";

byte[] ptext = encode.getBytes(StandardCharsets.UTF_8);

String value = new String(ptext,StandardCharsets.UTF_8);

System.out.print(value);


It prints : ₹

但是当我们将卢比符号 unicode 作为环境变量传递时,它不起作用


String encode = System.getenv("encode");

byte[] ptext = encode.getBytes(StandardCharsets.UTF_8);

String value = new String(ptext,StandardCharsets.UTF_8);

System.out.print(value);


It prints : \u20B9

这是我在 mac OS 上尝试过的。


森栏
浏览 252回答 2
2回答

慕运维8079593

Java 仅\uXXXX在它位于 Java 源文件中并且编译器处理它(解析它并将其转换为单个字符)时才能理解格式。如果您从某处读取该值,它不会被解释为 unicode 字符(除非在 .properties 文件中,这有点特殊)。
随时随地看视频慕课网APP

相关分类

Java
我要回答