我正在下载一个网页,然后从页面加载字符串到WPF UI。 一个字符串具有重音字符:“íine”。 在调试器中,字符串看起来很好,但添加到WPF ListBox时,它看起来像这样:Ã[] ine,其中[]是单个矩形符号。 当我从调试器UI复制文本并粘贴它时,在Ã后会出现一个空格。这个'空格'在WPF显示时显示为矩形符号。为什么isnt WPF无法正确显示重音字符?
有谁知道发生了什么事?
我正在下载一个网页,然后从页面加载字符串到WPF UI。 一个字符串具有重音字符:“íine”。 在调试器中,字符串看起来很好,但添加到WPF ListBox时,它看起来像这样:Ã[] ine,其中[]是单个矩形符号。 当我从调试器UI复制文本并粘贴它时,在Ã后会出现一个空格。这个'空格'在WPF显示时显示为矩形符号。为什么isnt WPF无法正确显示重音字符?
有谁知道发生了什么事?
此修复程序是下载这样的网页:
WebClient c = new WebClient();
var bytes = c.DownloadData(url);
UTF8Encoding utf8 = new UTF8Encoding();
var s = utf8.GetString(bytes);
,而不是像这样:
WebClient c = new WebClient();
var s = c.DownloadString(url);
WebClient.DownloadString
无法正常下载的页面,并将其转换为字符串。
您的字符串可能包含从复制/粘贴或其他内容到达的“不可见”字符。尝试按字符重写“íine”字符。
字符串是从网页中提取的,因此手动编辑它并不是解决方案。 – mackenir 2009-10-07 09:59:03
我想在WPF中你正在处理UTF-8,并且列表框需要Latin-1(或类似的)。 – 2009-10-07 09:51:56
ListBox肯定接受System.String所在的格式(Unicode?)。奇怪的是,VS调试器用户界面对字符串没问题。这可能是从网上下载的问题。 – mackenir 2009-10-07 10:00:23