SAP UI5 Tooling - 在 i18n.properties 文件里维护中文字符后变成乱码该如何解决

发布时间 2023-05-16 18:43:35作者: JerryWang_汪子熙

看这个 Github issue.

重现步骤:

在这里插入图片描述

解决方案

setting the propertiesFileSourceEncoding configuration in ui5.yaml to UTF-8.

Documentation: https://sap.github.io/ui5-tooling/pages/Configuration/#encoding-of-properties-files

Example: https://github.com/SAP-samples/openui5-sample-app/blob/master/ui5.yaml

例子:

resources:
  configuration:
    propertiesFileSourceEncoding: UTF-8

换言之,如果您的项目使用不同的编码方式来处理 *.properties 文件,您需要设置 propertiesFileSourceEncoding 配置属性。

UI5工具将以给定的编码方式读取项目的相应文件。任何非ASCII字符将被替换为相应的Unicode转义序列。这使您可以将生成的文件部署到任何环境中,而不受它如何编码 *.properties 文件的影响。有关详细信息,请参阅 RFC 7。

propertiesFileSourceEncoding 是 SAP UI5-Tooling 配置文件中的一个属性,用于指定 .properties 文件的编码方式。这个属性非常重要,因为在不同的环境中,.properties 文件的编码方式可能会有所不同。如果在开发环境中使用一种编码方式,而在另一个环境中使用另一种编码方式,则可能会导致在应用程序部署或运行时出现问题。

通过设置 propertiesFileSourceEncoding 属性,UI5-Tooling 可以读取项目中的相应文件,并将非ASCII字符替换为相应的Unicode转义序列。这样就可以将生成的文件部署到任何环境中,而不必担心文件编码方式的不同所导致的问题。如果您的项目使用不同的编码方式来处理 *.properties 文件,那么您需要设置这个属性。

UTF-8 和GBK(GB2312)是两种不同的字符编码方式,它们有以下几个主要区别:

  1. 字符集范围:UTF-8 是一种 Unicode 字符编码,支持世界上几乎所有的字符集,包括汉字、拉丁字母、希腊字母等等。而GBK 则是 GB2312 的扩展,只支持中文、英文、数字以及一些符号的编码。

  2. 编码方式:UTF-8 是一种变长的编码方式,一个字符可能由1个到4个字节组成。而GBK 则是一种固定长度的编码方式,每个字符都由2个字节组成。

  3. 兼容性:UTF-8 兼容 ASCII 编码,这意味着 ASCII 编码的文本可以直接以 UTF-8 的方式进行编码,而不需要任何转换。而GBK 则不兼容 ASCII 编码,如果将 ASCII 编码的文本作为 GBK 编码进行编码,将会产生错误的结果。

总的来说,UTF-8 是一种更加通用和灵活的字符编码方式,支持更多的字符集,并且兼容 ASCII 编码。而GBK 则是一种更加专门的中文字符编码方式,适用于仅包含中文字符的场景。