字符串替换不适用于某些俄语字符

String replace isn't working for some russian characters

出于某种原因,我需要将俄语字母“Ё”替换为“Е”。所以我写了这个简单的代码

someString = someString.toLowerCase().replace("ё", "е");

它在模拟器和我的大多数设备上都运行良好,小米 Redmi 9a 除外。该应用完全没有取代小米上的“ё”。

有什么问题吗?

小米红米9a用的不是俄文字母“Ё”,而是“È”! :) 这是带有分音符的拉丁字母“E”。不知道是键盘问题还是其他原因

所以我们需要将代码改成这样

// The first character of pattern is russian Ё, the second is latin E with diaeresis. 
// Some Xiaomi devices use the second variant instead of russian letter
someString = someString.toLowerCase().replaceAll("[ёë]", "е");

或这个

someString = someString.toLowerCase().replace("ё", "е").replace("ë", "е");