C#转GB2312编码问题

将中文转至GB2312的编码!stringtext="标准";stringkeyword;如何将text转换成GB2312的编码,并赋值给keyword!大家帮帮忙,写下... 将中文转至GB2312的编码!
string text ="标准";
string keyword;
如何将text转换成GB2312的编码,并赋值给keyword!
大家帮帮忙,写下完整代码和思路。要有注释就更好了!
(高分,能帮我解决问题的追加到200分)
C# 的哦
怎么没有人理解我的意思呢?
“标准”的GB232的编码不是为%b1%ea%d7%bc嘛,我在C#里面怎样才能将标准转换成%b1%ea%d7%bc并保存在keyword里!
展开
 我来答
taonylu
2011-08-26 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:98.1万
展开全部
你所看到的文字都是经过编码的结果。如“标准”两个字,可能是经过GB2312编码后显示出来的,也可能是经过UTF8编码后显示出来的。“%b1%ea%d7%bc”作为字符串来说,同理。

文字编码的功用都是将计算机中存储的数据经过编码转换后输出显示,或将文字经过编码存储在计算机的文件中。

%b1%ea%d7%bc 这个是 “标准” 的Url编码后的结果。 请注意,是“Url编码”。

url编码是将现有的以一种文字编码方式处理过的显示的文字转变成能够使用在浏览器地址栏的一种方式。关于url编码,请参阅百度百科。

所以你的问题有技术概念的错误。
壳大阅读
2011-08-14 · TA获得超过535个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:308万
展开全部
兄弟。。是不是网页传值乱码啊
代码页 Name 显示名称
936 gb2312 简体中文 (GB2312)
65001 utf-8 Unicode (UTF-8)

国内各搜索引擎均采用GB2312,使用此类搜索引擎时,编码为:

HttpUtility.UrlEncode(String, System.Text.Encoding.GetEncoding(936))

string text ="标准";
string keyword;
text = HttpUtility.UrlEncode(text);
保险点可以:
text = HttpUtility.UrlEncode(text, System.Text.Encoding.GetEncoding(936))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风之小A
2011-08-10 · TA获得超过791个赞
知道小有建树答主
回答量:662
采纳率:100%
帮助的人:535万
展开全部
一看你这么问就是对编码还没理解.
首先,string本身都是已经编码后的结果了.string 的内容本身不存在编码不编码的问题.
编码的意义是什么呢?举个例子:假设 "标"字 在gb码里对应的byte值的16进制数是 11 0A(当然这是我随意写的,实际是什么可以自己写代码测试出来)而在utf-8里对应的byte值的16进制数是 12 0B
我们把"标"这个字按gb码写到文本中.其内保存的当然就是11 0A 然后如果我们从文件里读取得到一个byte数组 内容为11 0A 如果用utf-8编码来解码获得的显然就不是标这个字了.这就是编码错误.
下面写一些相关代码供你参考
string text = "标准";
string keyword;
Encoding utf8encoding =Encoding.UTF8;
Encoding gbencoding = Encoding.GetEncoding("GB2312");
//用UTF-8编码用GB码解码,得到的肯定是乱码了
keyword = gbencoding.GetString(utf8encoding.GetBytes(text));
//这样肯定不会乱码.
keyword=gbencoding.GetString (gbencoding.GetBytes(text));
//用GB码写入文件
System.IO.File.WriteAllBytes("keyword.txt", gbencoding.GetBytes(text));
//用GB码解码刚才这个文件的内容为字符串 得到的是正确的"标准"二字
keyword =gbencoding.GetString(System.IO.File.ReadAllBytes("keyword.txt"));
//这样得到的就是乱码了
keyword = utf8encoding.GetString(System.IO.File.ReadAllBytes("keyword.txt"));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
roarphilar
2011-08-27 · TA获得超过140个赞
知道小有建树答主
回答量:81
采纳率:0%
帮助的人:36.3万
展开全部
%B3%C2%B8%A3%D0%CB
这种编码不是GB2312 是 URI 编码是网页上用的
正确方法:
Server.UrlEncode("中文");
Server.UrlDecode("%e4%b8%ad%e6%96%87");
这只能在网页中用,如果要在 winform中用 先引用System.Web.UI 这个DLL ,如果不能引用,可自行在网上找winform URL编码函数
ryangt 的回答是正确答案,估计你没试过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友11fc0e4
推荐于2017-11-28 · TA获得超过131个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:99.6万
展开全部
如果你的初始编码格式为UTF-8转换为GB2312的话,代码如下:
string text="标准";
string keyword;
byte[] buffer= Encoding.UTF8.GetBytes(text);
keyword=Encoding.GetEncoding("GB2312").GetString(buffer);
代码仅供参考,希望对你有帮助!
更多追问追答
追问
不是,我就想中文字符转成GB2312编码
追答
中文文字也是有默认的编码格式的,一般为UTF-8或者GBK,如果你要格式转换只能这样,至少我现在没有找到更好的方式!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式