Знак фунта отображается как £ при генерации CSV - PullRequest
4 голосов
/ 22 февраля 2012

У меня есть скрипт, который перебирает GridView на моей веб-странице и генерирует файл CSV из значений.

С этим сообщалось о проблеме, когда символы отображались в кодированном виде, например:

Lorem & Ipsum
£100

Я использовал Server.HtmlDecode(), и это исправило декодированные значения, исправив амперсанд, однако знак фунта теперь отображает другой символ:

Lorem & Ipsum
£100

Почемуэто, и как я могу это исправить, чтобы символ Â не появлялся?


Код, который я использую для подготовки начального значения для использования в CSV:

Dim Str As String = String.Format("{0}", Server.HtmlDecode(value).Replace(",", "").Replace(Environment.NewLine, " ").Replace(Chr(10), " ").Replace(Chr(13), " "))

Это декодирует HTML, заменяет любые запятые и разрывы строк.

1 Ответ

10 голосов
/ 22 февраля 2012

Вероятно, ваша исходная кодировка строки не соответствует выходной кодировке.Установите кодировку содержимого перед тем, как выписать клиент, чтобы избежать изменения в кодировке, которое приведет к полученным результатам.

Вы можете сделать это, установив Response.ContentEncoding;например:

Response.ContentEncoding = System.Text.Encoding.GetEncoding(1252);

Даст вам кодовую страницу Windows 1252.Вы также можете использовать UTF-8 и ISO 8559-1 или даже любую другую кодировку, которую вы хотите.

Вы также можете последовательно установить это в своем приложении, используя элемент globalization в вашемweb.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...