2012-02-22 4 views
4

Webページ上でGridViewをループするスクリプトがあり、その値からCSVファイルが生成されます。しかし、シャープ記号は、CSVを生成するときに£として表示されるシャープ記号

Lorem & Ipsum 
£100 

Iは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をデコードし、任意のカンマや改行を置き換えます。

+0

あなたのアプリと消費しているクライアントは、エンコードに同意していますか?私。あなたのクライアントがExcelでこのCSVを開くと、彼らはあなたが与えたのと同じエンコーディングを選んでいますか?私は(ドイツ語)Excelが標準でISO-8895-1でCSVを開くことを覚えています。これはUTF-8ポンド記号をこのように表示します。 –

+0

エンコードの問題のようです。 http://msdn.microsoft.com/en-us/library/hy4kkhe0.aspxを見て、アプリ全体で変更する方法については、CSVを書き込むときに変更することもできます。 – dash

+0

私はCSVファイルをメモ帳で開いてチェックしましたが、これは£100として表示されます!いいえ 'Â'。これをExcelで表示するには、エンコーディングで何ができますか? – Curt

答えて

10

ソース文字列のエンコーディングが出力エンコーディングと一致していない可能性があります。あなたが観察した結果をもたらすエンコーディングの変更を避けるために、クライアントを書き出す前にコンテンツエンコーディングを設定してください。

Response.ContentEncodingを設定することでこれを行うことができます。たとえば:

Windows 1252コードページが表示されます。 UTF-8とISO 8559-1を使用することもできますし、他のエンコーディングを使用することもできます。

web.configのglobalization要素を使用して、アプリケーション全体でこれを一貫して設定することもできます。

関連する問題