我有一個名爲Frédéric
的聯繫人。如何刪除像Frédéric這樣的特殊字符?
當我在網站上搜索它的聯繫人列表中的名稱得到改變這樣"Frédéric"
,因爲它會搜索該名稱(Frédéric
)在數據庫中我在它的名稱爲Frédéric
。
所以在數據庫中不會有這樣的名字,它表示沒有找到聯繫人。
我如何獲得除此名稱以外的真實姓名Frédéric
。?
我的解碼方法是
public static string Decode(string text)
{
if (text == null)
{
return "";
}
string result = "";
string[] values = text.Split('@');
bool escaped = false;
try
{
for (int i = 0; i < values.Length; i++)
{
if (!escaped)
{
result += values[i].Replace("_"," ");
}
else
{
//result += System.Text.ASCIIEncoding.ASCII.GetChars(new byte[] { byte.Parse(values[i]) })[0];
}
escaped = !escaped;
}
}
catch { }
return result;
}
這裏的方法的參數是FRA©DA©RIC但它實際上必須是弗雷德裏克。
原則上,他可以使用默認編碼來代替UTF-8,但這是一個非常糟糕的主意。 UTF-8顯然更好,因爲它避免了代碼頁的痛苦。 – CodesInChaos
hi martin, 在我的解碼方法中,我做了這件事 result + = System.Text.ASCIIEncoding.ASCII.GetChars(new byte [] {byte.Parse(values [i])})[0]; – saaswathy
@saaswathy:解碼字節需要使用編碼時使用的相同編碼。我已經證明,如果使用UTF-8進行編碼並使用ISO 8859:1進行解碼,您會得到'FrédÃric',這非常暗示您使用UTF-8進行編碼。這意味着你也必須使用UTF-8進行解碼。例如。調用'Encoding.UTF8.GetString'來解碼字節。不要'用ASCII編碼/解碼 - 'é'然後會映射到'?'。 –