致命异常:java.util.UnknownFormatConversionException转换:מ;
此代码给出字符串错误。格式(…):致命异常:java.util.UnknownFormatConversionException转换:מ;,java,android,character-encoding,string-formatting,right-to-left,Java,Android,Character Encoding,String Formatting,Right To Left,此代码给出字符串错误。格式(…): R.string.sharing\u invite\u title是%s邀请您加入smth。 这一错误的原因可能是什么?导致错误的符号是从右到左的字母。谷歌搜索不会给出任何答案。用\u0025替换% %是xml中的一个特殊字符。所以你不应该直接放置它。事实证明,应用程序只有在希伯莱语言环境下才会崩溃,而希伯莱语言环境使用的是iwcode(而不是he),在安卓5.0上使用旧代码很奇怪。字符串文件中相应的字符串具有s%,而不是%s。这就产生了未知信息转换异常 这是
R.string.sharing\u invite\u title
是%s邀请您加入smth。
这一错误的原因可能是什么?导致错误的符号是从右到左的字母。谷歌搜索不会给出任何答案。用\u0025替换%
%是xml中的一个特殊字符。所以你不应该直接放置它。事实证明,应用程序只有在希伯莱语言环境下才会崩溃,而希伯莱语言环境使用的是
iw
code(而不是he
),在安卓5.0上使用旧代码很奇怪。字符串文件中相应的字符串具有s%
,而不是%s
。这就产生了未知信息转换异常
这是因为Android Studio中缺乏RTL支持。请参阅此问题中更详细的答案:So
String.format(“%s邀请您:”,inviter.getnamefortle())代码>有效?我很快实现了这一点,并直接设置了从右到左的字母。对我来说一切都很好=(无法解释为什么会出现错误。即使是直接使用字符串资源而不是在字符串中。formatBut%s
应该被inviter.getNameForTitle()
替换。阿拉伯语也是如此,任何RTL字符串似乎都是如此
inviterNameTitleView.setText(
String.format(
context.getString(R.string.sharing_invite_title),
inviter.getNameForTitle()
)
);