我有一个简体中文文本,当读取为 UTF-8 开头时, MandarinTools\xc2\xb4\xc3\x93\xc2\xba\xc3\x9c\xc2\xbe\xc3\x83\xc3\x92\xc3\x94\xc3\x87\xc2\xb0\xc2\xbf\xc2\xaa\xc3\x8a\xc2\xbc的在线工具(修复损坏的中文电子邮件的第一个搜索结果)将其修复为正确的,但不清楚它是如何修复的那。通过使用在线工具和十六进制编辑器,我知道每个字符都被编码为固定长度的 32 位:\xe4\xbb\x8e\xe5\xbe\x88\xe4\xb9\x85\xe4\xbb\xa5\xe5\x89\x8d\xe5\xbc\x80\xe5\xa7\x8b
c2b4 c393 \xe4\xbb\x8e\nc2ba c39c \xe5\xbe\x88\nc2be c383 \xe4\xb9\x85\nc392 c394 \xe4\xbb\xa5\nc387 c2b0 \xe5\x89\x8d\nc2bf c2aa \xe5\xbc\x80\nc38a c2bc \xe5\xa7\x8b\nRun Code Online (Sandbox Code Playgroud)\n\n这也表明一个字符被编码为 c2**-c3** 范围内的两个 16 位字。对于 UTF-16,这些字符的第一个 16 位字始终为 0。UTF-8 仅使用每个字符 24 位,而代码页 936 此处仅使用每个字符 16 位。\n我可以使用哪种方法来确定正确的编码转换?
\n\nutf-8表示:
\n\ne4bb 8e \xe4\xbb\x8e\ne5be 88 \xe5\xbe\x88\ne4b9 85 \xe4\xb9\x85\ne4bb a5 \xe4\xbb\xa5\ne589 8d \xe5\x89\x8d\ne5bc 80 \xe5\xbc\x80\ne5a7 8b \xe5\xa7\x8b\nRun Code Online (Sandbox Code Playgroud)\n\ncp936表示:
\n\nb4d3 \xe4\xbb\x8e\nbadc \xe5\xbe\x88\nbec3 \xe4\xb9\x85\nd2d4 \xe4\xbb\xa5\nc7b0 \xe5\x89\x8d\nbfaa \xe5\xbc\x80\ncabc \xe5\xa7\x8b\nRun Code Online (Sandbox Code Playgroud)\n