1 回答
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
“?”字符未在您的源代碼中編碼 - 到達(dá)接收器端“-3,-1”的序列是-替換字符0xfffd的 UTF 16 LE 編碼。
如果沒(méi)有看到服務(wù)器端代碼,很難判斷發(fā)生了什么,但它很糟糕。Utf-16 可以處理像“ü”這樣的字符而不會(huì)妨礙它。實(shí)際上,它甚至不在前 256 個(gè) unicode 代碼點(diǎn)之外,更不用說(shuō)在 Base Multilingual Plane 之外了。(這是一個(gè)在許多西方語(yǔ)言中很常見的字符,甚至是拉丁字符,它怎么會(huì)脫離為世界上所有語(yǔ)言設(shè)計(jì)的字符的平面?)
發(fā)生的事情是,從您的文本到用于電匯的 utf-16 的代碼路徑在某些時(shí)候被明確指示為任何不僅僅是 ASCII 的字符設(shè)置替換字符(舊版 unicode 代碼點(diǎn) 0x20 -0x7f,其中僅包括無(wú)重音的拉丁字符)。
明確地說(shuō),換句話說(shuō):數(shù)據(jù)在服務(wù)器端被破壞,所有非 ASCII 適合的字符都可能被壓縮為“替換字符”。對(duì)客戶端代碼進(jìn)行再多的改動(dòng)也無(wú)法解決這個(gè)問(wèn)題。
添加回答
舉報(bào)
