编码文本的解码仅部分起作用他

问题描述

从服务器获取的数据以我认为的 ISO-8859-1 编码。 使用“he”库对检索到的文本进行解码后,只解码了部分字符串。

**Retrieved encoded text** - A edição "Arquivo LdoD" é uma edição

解码后预期 - edição "Arquivo LdoD" é uma edição

解码的实际结果 - A edição“Arquivo LdoD”é uma edição

反应代码

import he from 'he'

.
.
.

useEffect(() => {
            getVirtualEditionList(props.acronym)
                .then(res => {
                    setEditionData(res.data.sortedInterpsList)

                    console.log(res.data.synopsis) //A edição ...
                    console.log(he.decode(res.data.synopsis)) //A edição "Arquivo LdoD" é ...
                    setSynopsis(he.decode(res.data.synopsis))
                    setTitle(he.decode(res.data.title))
                    
                    setLoading(false)
                })
        }
        
    },[props.page])

我不得不将检索到的字符串放在代码中,因为 Stackoverflow 已经在解码它的内容,这个解码结果与我在 React 应用程序中解码时得到的值相同。

有没有办法解决这个问题,也许是一种手动解码“他”库无法解码的其余文本的方法?问题似乎出在葡萄牙语/拉丁语字符上 - é、ç、ã、á。

解决: 将文本编码为 win1252,然后将其解码为 utf-8

let decoded = iconv.encode(he.decode(res.data.synopsis),'win1252');
setSynopsis(decoded.toString())

解决方法

您确定它不是 Windows-1252?它使用了 ISO-8859-1 中未定义的范围,“智能报价”尤其邪恶。