Flutter 网络接口数据解码

123 阅读1分钟
import 'dart:convert';

void main() {
// 您的原始乱码字符串
String encodedString = "{id: 636, msg: æä»¬è¿ç§è¯äººçå£è¢éï¼éæ¶é½æå å°ç»æ¢¦ä¸­æäººçä¿¡ï¼æä»¬çæäººï¼ä¸è¿æ¯é便å个åå­ï¼ç¨å¹»æ³å¹åºçè¥çæ³¡ï¼æä¿¡æ¿å»å§ï¼ä½ å¯ä»¥ä½¿åææçãææ¬æ¥æ¯æ çå»åï¼æ¼«æ ç®çå°åé²çç±æâ¦â¦ç°å¨è¿äºæ¼æ³ä¸å®çé¸å¿æå°æ¹æ æ¯äºãä½ å¯ä»¥ä»ä¿¡éçåºæ¥ââæ¿å»å§ï¼ç±äºä¸æ¯åºèªçå¿ï¼è¯å°±è¯´å¾æ ¼å¤å¨å¬ï¼ââæ¿å»å§ï¼å°±è¿ä¹åï¼, from: ã西å诺·德·è´ç­æåã, type: æå­¦, likes: 0}";

// 对字符串进行 utf8 解码
String decodedMessage = _decodeToUtf8(encodedString);

print(decodedMessage);
}

String _decodeToUtf8(String encodedString) {
// 将乱码转换为字节,然后进行utf8解码
List<int> bytes = encodedString.codeUnits;
return utf8.decode(bytes.map((codeUnit) {
// 这里可以尝试通过手动调整字符来纠正乱码
// 这方面可能需要实现具体的纠正算法
return codeUnit; // This line just returns the original value
}).toList());
}