添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public:
 static property System::Text::Encoding ^ UTF8 { System::Text::Encoding ^ get(); };
public static System.Text.Encoding UTF8 { get; }
member this.UTF8 : System.Text.Encoding
Public Shared ReadOnly Property UTF8 As Encoding
  • 希臘文小寫字母 BETA (U + 03B2)

  • (U + D800 U + DD54) 的代理配對,可形成希臘文 ACROPHONIC 閣樓 1000 STATERS (U + 10154) 。

    它會顯示每個字元的 UTF-16 程式碼單位,並決定 UTF-8 編碼器為字元陣列編碼所需的位元組數目。 然後,它會將字元編碼,並顯示產生的 UTF-8 編碼位元組。

    using System; using System.Text; public class Example public static void Main() // Create a character array. string gkNumber = Char.ConvertFromUtf32(0x10154); char[] chars = new char[] { 'z', 'a', '\u0306', '\u01FD', '\u03B2', gkNumber[0], gkNumber[1] }; // Get UTF-8 and UTF-16 encoders. Encoding utf8 = Encoding.UTF8; Encoding utf16 = Encoding.Unicode; // Display the original characters' code units. Console.WriteLine("Original UTF-16 code units:"); byte[] utf16Bytes = utf16.GetBytes(chars); foreach (var utf16Byte in utf16Bytes) Console.Write("{0:X2} ", utf16Byte); Console.WriteLine(); // Display the number of bytes required to encode the array. int reqBytes = utf8.GetByteCount(chars); Console.WriteLine("\nExact number of bytes required: {0}", reqBytes); // Display the maximum byte count. int maxBytes = utf8.GetMaxByteCount(chars.Length); Console.WriteLine("Maximum number of bytes required: {0}\n", maxBytes); // Encode the array of chars. byte[] utf8Bytes = utf8.GetBytes(chars); // Display all the UTF-8-encoded bytes. Console.WriteLine("UTF-8-encoded code units:"); foreach (var utf8Byte in utf8Bytes) Console.Write("{0:X2} ", utf8Byte); Console.WriteLine(); // The example displays the following output: // Original UTF-16 code units: // 7A 00 61 00 06 03 FD 01 B2 03 00 D8 54 DD // Exact number of bytes required: 12 // Maximum number of bytes required: 24 // UTF-8-encoded code units: // 7A 61 CC 86 C7 BD CE B2 F0 90 85 94 Imports System.Text Public Module Example Public Sub Main() ' Create a character array. Dim gkNumber As String = Char.ConvertFromUtf32(&h10154) Dim chars() As Char = {"z"c, "a"c, ChrW(&H0306), ChrW(&H01FD), ChrW(&H03B2), gkNumber(0), gkNumber(1) } ' Get UTF-8 and UTF-16 encoders. Dim utf8 As Encoding = Encoding.UTF8 Dim utf16 As Encoding = Encoding.Unicode ' Display the original characters' code units. Console.WriteLine("Original UTF-16 code units:") Dim utf16Bytes() As Byte = utf16.GetBytes(chars) For Each utf16Byte In utf16Bytes Console.Write("{0:X2} ", utf16Byte) Console.WriteLine() Console.WriteLine() ' Display the number of bytes required to encode the array. Dim reqBytes As Integer = utf8.GetByteCount(chars) Console.WriteLine("Exact number of bytes required: {0}", reqBytes) ' Display the maximum byte count. Dim maxBytes As Integer = utf8.GetMaxByteCount(chars.Length) Console.WriteLine("Maximum number of bytes required: {0}", maxBytes) Console.WriteLine() ' Encode the array of characters. Dim utf8Bytes() As Byte = utf8.GetBytes(chars) ' Display all the UTF-8-encoded bytes. Console.WriteLine("UTF-8-encoded code units:") For Each utf8Byte In utf8Bytes Console.Write("{0:X2} ", utf8Byte) Console.WriteLine() End Sub End Module ' The example displays the following output: ' Original UTF-16 code units: ' 7A 00 61 00 06 03 FD 01 B2 03 00 D8 54 DD ' Exact number of bytes required: 12 ' Maximum number of bytes required: 24 ' UTF-8-encoded code units: ' 7A 61 CC 86 C7 BD CE B2 F0 90 85 94

    這個屬性會傳回 UTF8Encoding 物件,此物件會將 Unicode (utf-16 編碼的) 字元編碼為每個字元的一到四個位元組序列,並將 utf-8 編碼的位元組陣列解碼為 Unicode (utf-16 編碼的) 字元。 如需 .NET 所支援之字元編碼方式的相關資訊,以及要使用哪些 Unicode 編碼的討論,請參閱 .net 中的字元編碼

    UTF8Encoding 這個屬性所傳回的物件可能沒有適用于您應用程式的適當行為。

  • 它會傳回一個 UTF8Encoding 物件,該物件會提供 (BOM) 的 Unicode 位元組順序標記。 若要具現化未提供 BOM 的 UTF8 編碼,請呼叫此函式的任何多載 UTF8Encoding

  • 它會傳回 UTF8Encoding 物件,該物件使用取代回取代來取代無法編碼的每個字串,而每個位元組無法以問號解碼 ( "?") 字元。 相反地,您可以呼叫此函 UTF8Encoding.UTF8Encoding(Boolean, Boolean) 式來具 UTF8Encoding 現化物件,而該物件的回復是 EncoderFallbackException DecoderFallbackException ,如下列範例所示。

    using System; using System.Text; public class Example public static void Main() Encoding enc = new UTF8Encoding(true, true); string value = "\u00C4 \uD802\u0033 \u00AE"; try { byte[] bytes= enc.GetBytes(value); foreach (var byt in bytes) Console.Write("{0:X2} ", byt); Console.WriteLine(); string value2 = enc.GetString(bytes); Console.WriteLine(value2); catch (EncoderFallbackException e) { Console.WriteLine("Unable to encode {0} at index {1}", e.IsUnknownSurrogate() ? String.Format("U+{0:X4} U+{1:X4}", Convert.ToUInt16(e.CharUnknownHigh), Convert.ToUInt16(e.CharUnknownLow)) : String.Format("U+{0:X4}", Convert.ToUInt16(e.CharUnknown)), e.Index); // The example displays the following output: // Unable to encode U+D802 at index 2 Imports System.Text Module Example Public Sub Main() Dim enc As Encoding = New UTF8Encoding(True, True) Dim value As String = String.Format("{0} {1}{2} {3}", ChrW(&h00C4), ChrW(&hD802), ChrW(&h0033), ChrW(&h00AE)) Dim bytes() As Byte = enc.GetBytes(value) For Each byt As Byte In bytes Console.Write("{0:X2} ", byt) Console.WriteLine() Dim value2 As String = enc.GetString(bytes) Console.WriteLine(value2) Catch e As EncoderFallbackException Console.WriteLine("Unable to encode {0} at index {1}", If(e.IsUnknownSurrogate(), String.Format("U+{0:X4} U+{1:X4}", Convert.ToUInt16(e.CharUnknownHigh), Convert.ToUInt16(e.CharUnknownLow)), String.Format("U+{0:X4}", Convert.ToUInt16(e.CharUnknown))), e.Index) End Try End Sub End Module ' The example displays the following output: ' Unable to encode U+D802 at index 2
  •