的字符串讓我改一下我的問題:查找®文本
我在文本閱讀,其中的人物之一是註冊的符號,®,從具有顯示符號沒有問題的文本文件。當我從文件中讀取字符串後嘗試打印字符串時,該符號是不可打印的字符。當我讀取字符串並將字符串拆分爲字符並將字符轉換爲Int16並打印出十六進制數時,我得到0xFFFD。當我打開StreamReader
時,我指定Encoding.UTF8
。
這裏是我有什麼
using (System.IO.StreamReader sr = new System.IO.StreamReader(HttpContext.Current.Server.MapPath("~/App_Code/Hormel") + "/nutrition_data.txt", System.Text.Encoding.UTF8))
{
string line;
while((line = sr.ReadLine()) != null)
{
//after spliting the file on '~'
items[i] = scrubData(utf8.GetString(utf8.GetBytes(items[i].ToCharArray())));
//items[i] = scrubData(items[i]); //original
}
}
這裏是scrubData功能
private String scrubData(string data)
{
string newStr = String.Empty;
try
{
if (data.Contains("HORMEL"))
{
string[] s = data.Split(' ');
foreach(string str in s)
{
if (str.Contains("HORMEL"))
{
char[] ch = str.ToCharArray();
for(int i=0; i<ch.Length; i++)
{
EventLogProvider.LogInformation("LoadNutritionInfoTask", "Test", ch[i] + " = " + String.Format("{0:X}", Convert.ToInt16(ch[i])));
}
}
}
}
return String.Empty;
}
catch (Exception ex)
{
EventLogProvider.LogInformation("LoadNutritionInfoTask", "ScrubData", ex.Message);
return data;
}
}
我不關心現在返回什麼,我打印出來的字符和十六進制與它們相對應的代碼。
嗯......只要搜索「®」? – JDB
如果你只是嘗試一下,找出哪一個是對的,如果兩者都是? – tnw
@Cybȫʁgϟ37當我搜索「®」時,它與符號不匹配。 – DFord