在Flutter/Dat中将十六进制字符串转换为ascii字符串



我需要帮助,因为我是DART初学者。我得到了以下格式的Json:

{"RETORNO":"0","OPERACAO":"PESQUISA_DADOS","UF":"RJ","MUNICIPIO":"","CODIGO_BENEFICIO":"7","BAIRRO":"","PALAVRA_CHAVE":"",
"REG":[
{"NOME":"3247204544554341c7c34f20452043554c5455524120464953494341204c5444412e","NOME_ABREVIADO":"435552564553202d2043454e54524f20505241c741204d415541","TIPO_BENEFICIO":"4553504f52544553","ENDERECO":"4156454e4944412052494f204252414e434f2c203433202f20534f4252454c4f4a41202d20434550203230303930303033202d2052494f204445204a414e4549524f202d20524a","TELEFONES":"2832312920203232303330333836","URL_SITE":"7777772e6375727665732e636f6d2e6272"}
]
}

当使用以下指令检索信息解码时,

_nome = dados["NOME"]==null ? " " : ascii.decode(hex.decode(dados["NOME"])).toString();

我得到以下错误:

Error: I/flutter ( 7525): FormatException: Invalid value in input: 199

3247204544554341c7c34f20452043554c54555241204953494341204c5444412e2教育与文化。

十六进制格式字符串有特殊字符(Çâ(,这会导致错误。我需要转换为UTF8格式吗?我该怎么办?有人能帮忙吗?

ASCII不支持çá等巴西字符。您必须使用Unicode。

DartString本身就是一个Unicode UTF-16,所以除非出于某种原因需要ASCII,否则只需使用DartString就可以了。

最新更新