如何在Flutter中合并Unicode字符?

时间:2019-05-05 21:41:29

标签: unicode flutter

我需要在其他一些字符(例如'2'或'x')上显示组合的上划线字符(U + 0305 Unicode代码)。

https://www.fileformat.info/info/unicode/char/0305/index.htm

在Dart中有没有办法做到这一点?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以通过将unicode放在字母后面来进行组合:

String overlined = 'O\u{0305}V\u{0305}E\u{0305}R\u{0305}';

print(overlined);  // Output: O̅V̅E̅R̅ 

更具动态性的版本(具有简单逻辑)将是:

void main() {
  String overlined = overline('I AM AN OVERLINED TEXT');

  print(overlined);  // Output: I̅ A̅M̅ A̅N̅ O̅V̅E̅R̅L̅I̅N̅E̅D̅ T̅E̅X̅T̅
}

String overline(String text) {
  return text.split('').map((String char) {
    if (char.trim().isEmpty)
      return char;
    else
      return '$char\u{0305}';
  }).join();
}

但是,这非常有限。更好的方法是使用Flutter的style的{​​{1}}属性:

Text