如何在 C# 中将标签文本转换为 UTF-8
how to transform label text to UTF-8 in c#
我正在尝试在 c# 中将标签的文本转换为 utf-8,我应该怎么做?
lblName.Text = e.displayName;
您不能更改字符串的编码。在 .NET 中,字符串在内部使用 UTF-16 编码。您只能在将字符串转换为 to/from 字节序列(例如写入文件/从文件中读取)时影响编码。
您应该看看那边的 MSDN 示例中提到的解决方案:
https://msdn.microsoft.com/en-us/library/system.text.utf8encoding(v=vs.90).aspx
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
// Create a UTF-8 encoding.
UTF8Encoding utf8 = new UTF8Encoding();
// A Unicode string with two characters outside an 8-bit code range.
String unicodeString =
"This unicode string contains two characters " +
"with codes outside an 8-bit code range, " +
"Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Encode the string.
Byte[] encodedBytes = utf8.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
foreach (Byte b in encodedBytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String decodedString = utf8.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
}}
在 C# 中,字符串使用 UTF-16。因此,您可能对此没有问题。
我认为您的 html 字符集有问题。
要将页面字符集设置为 "UTF-8",请在页面 header
上设置以下内容
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
我正在尝试在 c# 中将标签的文本转换为 utf-8,我应该怎么做?
lblName.Text = e.displayName;
您不能更改字符串的编码。在 .NET 中,字符串在内部使用 UTF-16 编码。您只能在将字符串转换为 to/from 字节序列(例如写入文件/从文件中读取)时影响编码。
您应该看看那边的 MSDN 示例中提到的解决方案: https://msdn.microsoft.com/en-us/library/system.text.utf8encoding(v=vs.90).aspx
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
// Create a UTF-8 encoding.
UTF8Encoding utf8 = new UTF8Encoding();
// A Unicode string with two characters outside an 8-bit code range.
String unicodeString =
"This unicode string contains two characters " +
"with codes outside an 8-bit code range, " +
"Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Encode the string.
Byte[] encodedBytes = utf8.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
foreach (Byte b in encodedBytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String decodedString = utf8.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
}}
在 C# 中,字符串使用 UTF-16。因此,您可能对此没有问题。
我认为您的 html 字符集有问题。
要将页面字符集设置为 "UTF-8",请在页面 header
上设置以下内容<meta http-equiv="Content-Type" content="text/html; charset=utf-8">