关于GBK与UTF-8的汉字转码.

a1100nn 2014-07-09 09:20:35
我经过XML接受到的内容一个节点为:
<name>璋崕骞?/name>
原因是由于经过GBK转码出现的问题
我特地的做了次试验:

string strName = "<name>谭华平</name>";
byte[] bts = Encoding.UTF8.GetBytes(strName);
string Text = Encoding.GetEncoding("GBK").GetString(bts);
// string Text ="<name>璋崕骞?/name>"; // <name>谭华平</name> 经过转码后变成了 <name>璋崕骞?/name>


那么 请问 有没有办法让我接受到的<name>璋崕骞?/name> 重新转回 <name>谭华平</name>
如果没有 应该怎么解决这个问题?
...全文
154 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-07-09
  • 打赏
  • 举报
回复
好比CAD打开时要使用对应的字体 如果使用错误,会显示成???? 你得到一串?,如何知道它原来到底是什么?
於黾 2014-07-09
  • 打赏
  • 举报
回复
[quote=引用 2 楼 a1100nn 的回复:] 不同编码格式使用的字节数都不一样 如果转汉字过程中丢了1-2个字节,导致字库中没有此汉字,就会变成? 你如何将?再变回丢失的1-2个字节? 你知道原来到底是什么东西没法翻译?
a1100nn 2014-07-09
  • 打赏
  • 举报
回复
有没有大神遇到过这个问题的??
  • 打赏
  • 举报
回复
接受数据之前要设置编码格式,那就不是你 的问题了。
a1100nn 2014-07-09
  • 打赏
  • 举报
回复
引用 1 楼 gomoku 的回复:
[quote=引用 楼主 a1100nn 的回复:]

                byte[] bts = Encoding.UTF8.GetBytes(strName);
                string Text = Encoding.GetEncoding("GBK").GetString(bts);
以上两行一定是错的。不仅没用,而且写了就不能百分百更正回来。 [/quote] 我这边接受到的就已经是 <name>璋崕骞?/name> 这样了
gomoku 2014-07-09
  • 打赏
  • 举报
回复
引用 楼主 a1100nn 的回复:

                byte[] bts = Encoding.UTF8.GetBytes(strName);
                string Text = Encoding.GetEncoding("GBK").GetString(bts);
以上两行一定是错的。不仅没用,而且写了就不能百分百更正回来。

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧