2009-10-07 88 views
1

我正在下载一个网页,然后从页面加载字符串到WPF UI。 一个字符串具有重音字符:“íine”。 在调试器中,字符串看起来很好,但添加到WPF ListBox时,它看起来像这样:Ã[] ine,其中[]是单个矩形符号。 当我从调试器UI复制文本并粘贴它时,在Ã后会出现一个空格。这个'空格'在WPF显示时显示为矩形符号。为什么isnt WPF无法正确显示重音字符?

有谁知道发生了什么事?

+0

我想在WPF中你正在处理UTF-8,并且列表框需要Latin-1(或类似的)。 – 2009-10-07 09:51:56

+0

ListBox肯定接受System.String所在的格式(Unicode?)。奇怪的是,VS调试器用户界面对字符串没问题。这可能是从网上下载的问题。 – mackenir 2009-10-07 10:00:23

回答

0

此修复程序是下载这样的网页:

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无法正常下载的页面,并将其转换为字符串。

0

您的字符串可能包含从复制/粘贴或其他内容到达的“不可见”字符。尝试按字符重写“íine”字符。

+0

字符串是从网页中提取的,因此手动编辑它并不是解决方案。 – mackenir 2009-10-07 09:59:03

相关问题