dart 和Flutter:我如何用例如替换字符串中不可见的控制字符?\n?

o0lyfsai  于 2023-07-31  发布在  Flutter
关注(0)|答案(4)|浏览(191)

我在flutter应用程序中下载了一个XML file,并将其转换为Dart Objects,稍后我想用JSON序列化它。由于JSON不接受任何不可见的回车符,我正在寻找一种方法来用\n替换它们。

jogvjijk

jogvjijk1#

根据你的问题,你为什么不使用dart String replaceAll方法。使用一个简单的regExp就可以替换所有的回车。

wnvonmuf

wnvonmuf2#

您可以从dart:convert库向jsonEncode() function传递一个String,它将自动用\n序列替换换行符(并将字符串引用)。

brccelvz

brccelvz3#

可以使用jsonEncode()jsonDecode()将字符串传递给json,也可以使用var声明变量

import 'dart:convert';

void main() {
  var string = {
    'a': 'Indication\n',
    'b': 'Indication\t',
    'c': 1
  };

  var enCode = json.encode(string);
  print(enCode); // {"a":Indication\n,"b":Indication\t,"c":1}

  print(jsonDecode(enCode)); // {"a":Indication
                              //    ,"b":Indication  ,"c":3}
}

字符串

yzuktlbb

yzuktlbb4#

如果有人遇到同样的问题,我创建了这个小脚本来删除字符串中的所有控制字符。

for (final String character in controlCharacters) {
  text = text.replaceAll(character, '');
}

字符串
然后在某处插入控制字符列表:

List<String> controlCharacters = [
  String.fromCharCodes([00]),
  String.fromCharCodes([01]),
  String.fromCharCodes([02]),
  String.fromCharCodes([03]),
  String.fromCharCodes([04]),
  String.fromCharCodes([05]),
  String.fromCharCodes([06]),
  String.fromCharCodes([07]),
  String.fromCharCodes([08]),
  String.fromCharCodes([09]),
  String.fromCharCodes([10]),
  String.fromCharCodes([11]),
  String.fromCharCodes([12]),
  String.fromCharCodes([13]),
  String.fromCharCodes([14]),
  String.fromCharCodes([15]),
  String.fromCharCodes([16]),
  String.fromCharCodes([17]),
  String.fromCharCodes([18]),
  String.fromCharCodes([19]),
  String.fromCharCodes([20]),
  String.fromCharCodes([21]),
  String.fromCharCodes([22]),
  String.fromCharCodes([23]),
  String.fromCharCodes([24]),
  String.fromCharCodes([25]),
  String.fromCharCodes([26]),
  String.fromCharCodes([27]),
  String.fromCharCodes([28]),
  String.fromCharCodes([29]),
  String.fromCharCodes([30]),
  String.fromCharCodes([31]),
];


如果你想了解更多关于控制字符的信息,请参阅this list。不要替换控制字符32,因为这是您的常规空格。

相关问题