C# WINFORM ,如何将一个中文字符串转换成UTF-8

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WINFORM ,如何将一个中文字符串转换成UTF-8相关的知识,希望对你有一定的参考价值。

举个例子,在以下这个网址输入“中国”,他就会自动把“中国”转换成“%E4%B8%AD%E5%9B%BD” ,我想知道的是,在C# WINFORM里,如何将汉字转换成那种形式,比如将“中国”转换成“E4%B8%AD%E5%9B%BD”
我说的是WINFORM ,一楼说的Server.htmlEncode 是ASP.NET里的吧?

参考技术A using System.Text;

byte[] buffer = Encoding.GetEncoding("utf-8").GetBytes("中国");
string str = "";

foreach (byte b in buffer) str += string.Format("%0:X", b);本回答被提问者和网友采纳
参考技术B private void button1_Click(object sender, EventArgs e)

string temp = string.Empty;
UTF8Encoding utf8 = new UTF8Encoding();
byte[] encodedBytes = utf8.GetBytes("中国");
foreach (byte b in encodedBytes)

temp+="%"+b.ToString("X");

MessageBox.Show(temp);

试试吧,应该是你想要的了,或者以下这种形式:
string temp = string.Empty;
byte[] encodedBytes = Encoding.GetEncoding("utf-8").GetBytes("中国");
foreach (byte b in encodedBytes)

temp+="%"+b.ToString("X");

MessageBox.Show(temp);
参考技术C 使用 //Byte[] bytes = System.Text.Encoding.UTF8.GetBytes("中国"); 参考技术D 直接引用System.Web
然后用里面的System.Web.Ultility.UrlEncode
有重载,第二个参数可以定义什么样的编码
第5个回答  2009-05-07 这个是用 Server.HTMLEncode 编码的~ 解码时用 Server.HTMLDecod

还有 Server.URLEncode 和 Server.URLDecod

C#如何将OBJECT转换成数组

我想从一个delphi接口中读取数据,delphi中定义为float数组,在C#中返回为objectfloat[],请问如何讲其中的值保存到一个数组中?
"float[] f=(float[])当前的object; "试过了..还是不行,编译的时候没有提示错误,但是运行的时候会提示"无法将类型为“System.Single[*]”的对象强制转换为类型“System.Single[]”。"错误..

急求解答,谢谢

有以下几种方法
(1)可以通过重新定义来进行转换:

object[] arr = new object[] arr[iarr.Length];
for(int i=0;i<iarr.Length;i++)


arr[i] = iarr[i];



(2) 通过list间接转换

List arr = new List(iarr);

List.ToArray()

由于存储结构的问题,c#不能直接对数组进行转换,建议通过List来代替数组这种低级类型。List的好处很多,如:
(1) 可自动改变大小

(2) 线程安全

(3) 提供多种实用函数

.参考书目:
c#高级编程
参考技术A float[] f=(float[])ArrayList.Adapter((Array)new object1.0,2.0).ToArray(typeof(float)); 参考技术B 强制类型转换:

float[] f=(float[])当前的object;

以上是关于C# WINFORM ,如何将一个中文字符串转换成UTF-8的主要内容,如果未能解决你的问题,请参考以下文章

如何将C#代码转换成软件

C#如何将OBJECT转换成数组

C# winform如何登陆web

c# winform 如何实现16进制颜色值的转换

c# 如何将字符串转换成url

请问C# winform如何实现将一个不规则形状的图片弄成按键?