UnicodeEncoding.GetByteCount Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter.
Overload
GetByteCount(String) |
Menghitung jumlah byte yang dihasilkan dengan mengodekan karakter dalam string yang ditentukan. |
GetByteCount(Char*, Int32) |
Menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter yang dimulai pada penunjuk karakter yang ditentukan. |
GetByteCount(Char[], Int32, Int32) |
Menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter dari array karakter yang ditentukan. |
GetByteCount(String)
- Sumber:
- UnicodeEncoding.cs
- Sumber:
- UnicodeEncoding.cs
- Sumber:
- UnicodeEncoding.cs
Menghitung jumlah byte yang dihasilkan dengan mengodekan karakter dalam string yang ditentukan.
public:
override int GetByteCount(System::String ^ s);
public override int GetByteCount (string s);
override this.GetByteCount : string -> int
Public Overrides Function GetByteCount (s As String) As Integer
Parameter
- s
- String
String yang berisi sekumpulan karakter yang akan dikodekan.
Mengembalikan
Jumlah byte yang dihasilkan dengan mengodekan karakter yang ditentukan.
Pengecualian
s
adalah null
.
Jumlah byte yang dihasilkan lebih besar dari angka maksimum yang dapat dikembalikan sebagai bilangan bulat.
Deteksi kesalahan diaktifkan, dan s
berisi urutan karakter yang tidak valid.
Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET)
-dan-
EncoderFallback diatur ke EncoderExceptionFallback.
Contoh
Contoh berikut memanggil GetMaxByteCount metode dan GetByteCount(String) untuk menghitung jumlah byte maksimum dan aktual yang diperlukan untuk mengodekan string. Ini juga menampilkan jumlah byte aktual yang diperlukan untuk menyimpan aliran byte dengan tanda urutan byte.
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
String chars = "UTF-16 Encoding Example";
Encoding unicode = Encoding.Unicode;
Console.WriteLine("Bytes needed to encode '{0}':", chars);
Console.WriteLine(" Maximum: {0}",
unicode.GetMaxByteCount(chars.Length));
Console.WriteLine(" Actual: {0}",
unicode.GetByteCount(chars));
Console.WriteLine(" Actual with BOM: {0}",
unicode.GetByteCount(chars) + unicode.GetPreamble().Length);
}
}
// The example displays the following output:
// Bytes needed to encode 'UTF-16 Encoding Example':
// Maximum: 48
// Actual: 46
// Actual with BOM: 48
Imports System.Text
Module Example
Public Sub Main()
Dim chars As String = "UTF-16 Encoding Example"
Dim unicode As Encoding = Encoding.Unicode
Console.WriteLine("Bytes needed to encode '{0}':", chars)
Console.WriteLine(" Maximum: {0}",
unicode.GetMaxByteCount(chars.Length))
Console.WriteLine(" Actual: {0}",
unicode.GetByteCount(chars))
Console.WriteLine(" Actual with BOM: {0}",
unicode.GetByteCount(chars) + unicode.GetPreamble().Length)
End Sub
End Module
' The example displays the following output:
' Bytes needed to encode 'UTF-16 Encoding Example':
' Maximum: 48
' Actual: 46
' Actual with BOM: 48
Keterangan
Untuk menghitung ukuran array yang tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, Anda memanggil GetByteCount metode . Untuk menghitung ukuran array maksimum, Anda memanggil GetMaxByteCount metode . Metode ini GetByteCount umumnya mengalokasikan lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.
Dengan deteksi kesalahan, urutan yang tidak valid menyebabkan metode ini melempar ArgumentException. Tanpa deteksi kesalahan, urutan yang tidak valid diabaikan, dan tidak ada pengecualian yang dilemparkan.
Penting
Untuk memastikan bahwa byte yang dikodekan didekodekan dengan benar saat disimpan sebagai file atau sebagai aliran, Anda dapat mengawali aliran byte yang dikodekan dengan awalan. Menyisipkan pembukaan di awal aliran byte (seperti di awal serangkaian byte yang akan ditulis ke file) adalah tanggung jawab pengembang, dan jumlah byte dalam pembukaan tidak tercermin dalam nilai yang dikembalikan oleh GetByteCount(String) metode .
Lihat juga
Berlaku untuk
GetByteCount(Char*, Int32)
- Sumber:
- UnicodeEncoding.cs
- Sumber:
- UnicodeEncoding.cs
- Sumber:
- UnicodeEncoding.cs
Penting
API ini bukan kompatibel CLS.
Menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter yang dimulai pada penunjuk karakter yang ditentukan.
public:
override int GetByteCount(char* chars, int count);
[System.CLSCompliant(false)]
public override int GetByteCount (char* chars, int count);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public override int GetByteCount (char* chars, int count);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetByteCount (char* chars, int count);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetByteCount (char* chars, int count);
[<System.CLSCompliant(false)>]
override this.GetByteCount : nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
override this.GetByteCount : nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetByteCount : nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetByteCount : nativeptr<char> * int -> int
Parameter
- chars
- Char*
Penunjuk ke karakter pertama yang akan dikodekan.
- count
- Int32
Jumlah karakter yang akan dikodekan.
Mengembalikan
Jumlah byte yang dihasilkan dengan mengodekan karakter yang ditentukan.
- Atribut
Pengecualian
chars
adalah null
.
count
kurang dari nol.
-atau-
Jumlah byte yang dihasilkan lebih besar dari angka maksimum yang dapat dikembalikan sebagai bilangan bulat.
Deteksi kesalahan diaktifkan dan chars
berisi urutan karakter yang tidak valid.
Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET)
-dan-
EncoderFallback diatur ke EncoderExceptionFallback.
Keterangan
Untuk menghitung ukuran array yang tepat yang GetBytes diperlukan untuk menyimpan byte yang dihasilkan, Anda memanggil GetByteCount metode . Untuk menghitung ukuran array maksimum, Anda memanggil GetMaxByteCount metode . Metode ini GetByteCount umumnya mengalokasikan lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.
Dengan deteksi kesalahan, urutan yang tidak valid menyebabkan metode ini melempar ArgumentException. Tanpa deteksi kesalahan, urutan yang tidak valid diabaikan, dan tidak ada pengecualian yang dilemparkan.
Penting
Untuk memastikan bahwa byte yang dikodekan didekodekan dengan benar saat disimpan sebagai file atau sebagai aliran, Anda dapat mengawali aliran byte yang dikodekan dengan awalan. Menyisipkan pembukaan di awal aliran byte (seperti di awal serangkaian byte yang akan ditulis ke file) adalah tanggung jawab pengembang, dan jumlah byte dalam pembukaan tidak tercermin dalam nilai yang dikembalikan oleh GetByteCount metode .
Lihat juga
Berlaku untuk
GetByteCount(Char[], Int32, Int32)
- Sumber:
- UnicodeEncoding.cs
- Sumber:
- UnicodeEncoding.cs
- Sumber:
- UnicodeEncoding.cs
Menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter dari array karakter yang ditentukan.
public:
override int GetByteCount(cli::array <char> ^ chars, int index, int count);
public override int GetByteCount (char[] chars, int index, int count);
override this.GetByteCount : char[] * int * int -> int
Public Overrides Function GetByteCount (chars As Char(), index As Integer, count As Integer) As Integer
Parameter
- chars
- Char[]
Array karakter yang berisi sekumpulan karakter untuk dikodekan.
- index
- Int32
Indeks karakter pertama yang dikodekan.
- count
- Int32
Jumlah karakter yang akan dikodekan.
Mengembalikan
Jumlah byte yang dihasilkan dengan mengodekan karakter yang ditentukan.
Pengecualian
chars
adalah null
(Nothing
).
index
atau count
kurang dari nol.
-atau-
index
dan count
tidak menunjukkan rentang yang valid dalam chars
.
-atau-
Jumlah byte yang dihasilkan lebih besar dari angka maksimum yang dapat dikembalikan sebagai bilangan bulat.
Deteksi kesalahan diaktifkan, dan chars
berisi urutan karakter yang tidak valid.
Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET)
-dan-
EncoderFallback diatur ke EncoderExceptionFallback.
Contoh
Contoh berikut mengisi array dengan karakter huruf besar dan huruf kecil Latin dan memanggil GetByteCount(Char[], Int32, Int32) metode untuk menentukan jumlah byte yang diperlukan untuk mengodekan karakter huruf kecil Latin. Kemudian menampilkan informasi ini bersama dengan jumlah total byte yang diperlukan jika tanda urutan byte ditambahkan. Ini membandingkan angka ini dengan nilai yang dikembalikan oleh GetMaxByteCount metode , yang menunjukkan jumlah maksimum byte yang diperlukan untuk mengodekan karakter huruf kecil Latin. Contoh berikut mengisi array dengan kombinasi karakter Yunani dan Sirilik dan memanggil GetByteCount(Char[], Int32, Int32) metode untuk menentukan jumlah byte yang diperlukan untuk mengodekan karakter Sirilik. Kemudian menampilkan informasi ini bersama dengan jumlah total byte yang diperlukan jika tanda urutan byte ditambahkan. Ini membandingkan angka ini dengan nilai yang dikembalikan oleh GetMaxByteCount metode , yang menunjukkan jumlah maksimum byte yang diperlukan untuk mengodekan karakter Sirilik.
using System;
using System.Text;
public class Example
{
public static void Main()
{
int uppercaseStart = 0x0041;
int uppercaseEnd = 0x005a;
int lowercaseStart = 0x0061;
int lowercaseEnd = 0x007a;
// Instantiate a UTF8 encoding object with BOM support.
Encoding unicode = Encoding.Unicode;
// Populate array with characters.
char[] chars = new char[lowercaseEnd - lowercaseStart + uppercaseEnd - uppercaseStart + 2];
int index = 0;
for (int ctr = uppercaseStart; ctr <= uppercaseEnd; ctr++) {
chars[index] = (char)ctr;
index++;
}
for (int ctr = lowercaseStart; ctr <= lowercaseEnd; ctr++) {
chars[index] = (char)ctr;
index++;
}
// Display the bytes needed for the lowercase characters.
Console.WriteLine("Bytes needed for lowercase Latin characters:");
Console.WriteLine(" Maximum: {0,5:N0}",
unicode.GetMaxByteCount(lowercaseEnd - lowercaseStart + 1));
Console.WriteLine(" Actual: {0,5:N0}",
unicode.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
lowercaseEnd - lowercaseStart + 1));
Console.WriteLine(" Actual with BOM: {0,5:N0}",
unicode.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
lowercaseEnd - lowercaseStart + 1) +
unicode.GetPreamble().Length);
}
}
// The example displays the following output:
// Bytes needed for lowercase Latin characters:
// Maximum: 54
// Actual: 52
// Actual with BOM: 54
Imports System.Text
Module Example
Public Sub Main()
Dim uppercaseStart As Integer = &h0041
Dim uppercaseEnd As Integer = &h005a
Dim lowercaseStart As Integer = &h0061
Dim lowercaseEnd As Integer = &h007a
' Instantiate a UTF8 encoding object with BOM support.
Dim unicode As Encoding = Encoding.Unicode
' Populate array with characters.
Dim chars(lowercaseEnd - lowercaseStart + uppercaseEnd - uppercaseStart + 1) As Char
Dim index As Integer = 0
For ctr As Integer = uppercaseStart To uppercaseEnd
chars(index) = ChrW(ctr)
index += 1
Next
For ctr As Integer = lowercaseStart To lowercaseEnd
chars(index) = ChrW(ctr)
index += 1
Next
' Display the bytes needed for the lowercase characters.
Console.WriteLine("Bytes needed for lowercase Latin characters:")
Console.WriteLine(" Maximum: {0,5:N0}",
unicode.GetMaxByteCount(lowercaseEnd - lowercaseStart + 1))
Console.WriteLine(" Actual: {0,5:N0}",
unicode.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
lowercaseEnd - lowercaseStart + 1))
Console.WriteLine(" Actual with BOM: {0,5:N0}",
unicode.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
lowercaseEnd - lowercaseStart + 1) +
unicode.GetPreamble().Length)
End Sub
End Module
' The example displays the following output:
' Bytes needed for lowercase Latin characters:
' Maximum: 54
' Actual: 52
' Actual with BOM: 54
Keterangan
Untuk menghitung ukuran array yang tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, aplikasi menggunakan GetByteCount. Untuk menghitung ukuran array maksimum, Anda memanggil GetMaxByteCount metode . Metode ini GetByteCount umumnya mengalokasikan lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.
Dengan deteksi kesalahan diaktifkan, urutan yang tidak valid menyebabkan metode ini melempar ArgumentException. Tanpa deteksi kesalahan, urutan yang tidak valid diabaikan, dan tidak ada pengecualian yang dilemparkan.
Untuk memastikan bahwa byte yang dikodekan didekodekan dengan benar saat disimpan sebagai file atau sebagai aliran, Anda dapat mengawali aliran byte yang dikodekan dengan awalan. Menyisipkan pembukaan di awal aliran byte (seperti di awal serangkaian byte yang akan ditulis ke file) adalah tanggung jawab pengembang, dan jumlah byte dalam pembukaan Tidak tercermin dalam nilai yang dikembalikan oleh GetByteCount(Char[], Int32, Int32) metode .