簡體   English   中英

為什么我的c#代碼不識別版權符號?

[英]Why doesn't my c# code recognize copyright symbol?

byte[] newBytes = new Byte[] { 169 };
string string1 = System.Text.Encoding.UTF8.GetString(newBytes, 0, newBytes.Length);

在上面的程序中,我希望string1具有版權符號©的值。

但我得到一些其他價值(可能是一些垃圾),如下所示

在此輸入圖像描述

我哪里做錯了?

UTF8需要多個字節來編碼大於127的字符點。如果你反向運行,你會看到它所期望的:

System.Text.Encoding.UTF8.GetBytes("©"); // { 194, 169 }

試試這個:

byte[] newBytes = new Byte[] { 194, 169 };
string string1 = System.Text.Encoding.UTF8.GetString(newBytes, 0, newBytes.Length);

如果您必須使用該原始字節數組,則需要選擇不同的編碼。 例如, Windows-1252編碼使用單個字節對版權符號進行編碼:

byte[] newBytes = new Byte[] { 169 };
var encoding = Encoding.GetEncoding(1252);
string string1 = encoding.GetString(newBytes, 0, newBytes.Length); // "©"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM