【发布时间】:2011-04-27 00:46:48
【问题描述】:
我有一个 asp.net c# 页面,正在尝试读取具有以下字符 ' 的文件并将其转换为 '。 (从斜撇号到撇号)。
FileInfo fileinfo = new FileInfo(FileLocation);
string content = File.ReadAllText(fileinfo.FullName);
//strip out bad characters
content = content.Replace("’", "'");
这不起作用,它会将倾斜的撇号更改为 ?标记。
【问题讨论】:
-
你说它把倾斜的变成了“?”。这意味着您的 Replace 函数的第一个参数是正确的,但第二个参数是错误的。它可能是一个 看起来 像单引号但实际上不是单引号的 Unicode 字符。在没有 Unicode 字体的显示器中,或打印到屏幕上时,无法识别的 Unicode 字符显示为“?”。
-
检查第二个参数是否是正确的字符。您可能不小心打开了亚洲 IME 或其他东西并输入了一个亚洲引号字符(即 Unicode),它看起来与屏幕上的简单引号完全一样。有时很难区分。
-
是的,它与文件的读取有关。我使用了字符串内容 = File.ReadAllText(fileinfo.FullName, Encoding.Default);正确读取它。谢谢!