Karaf配置属性是乱码



我实现org.osgi.service.cm.ManagedService接口来获取Karaf配置。但是当我给房产一个中国价值时,它是乱码。最初,etc 文件夹中的文件以 latin1 编码。我尝试设置 utf-8 编码,但没有效果。谁能帮我?

在卡拉夫,配置文件(即etc/*.cfg)由felix子项目"fileinstall"处理。

Fileinstall 尚不支持为配置指定自定义字符编码,它使用 Properties 类和 Properties.load(InputStream) ,其中记录:

加载(读取器)

/存储(编写器,字符串)方法加载和存储 在简单流中与基于字符的流之间的属性 下面指定的面向行的格式。负载(输入流)/ store(输出流,字符串)方法的工作方式与 加载(读取器)/存储(写入器,字符串)对,输入/输出除外 流以 ISO 8859-1 字符编码进行编码。字符 不能直接表示在此编码中可以使用 Java 语言第™ 3.3 节中定义的 Unicode 转义 规范;转义中只允许使用单个"U"字符 序列。native2ascii 工具可用于转换属性文件 来往于其他字符编码。

因此,您必须在 ISE-8859-1 中对文件进行编码并引用每个 UTF 字符,或使用 xml 文件对配置文件进行编码。

有一种方法可以更改 cfg 文件编码。文件安装子项目轮询等/*.cfg文件的配置写在config.properties文件中。您可以添加

felix.fileinstall.configEncoding = UTF-8

在卡拉夫 4 中检查了解决方案

最新更新