2010-07-22 16 views
5

Zwykle jestem programistą LAMPA, ale niektóre prace z platformy .NET pojawiły się na moim talerzu i jestem trochę zakłopotany.Znaki funta (£) znikające z ciągów ASP.NET

Jeśli uruchomić następujący kod: zostaje wyświetlony

<% poundsign = "£" %> 
<% Response.Write poundsign %> 
<% Response.Write "£" %> 

... nic. Jednak poza tagami <%%> (np. W HTML) wyświetla się poprawnie.

Nie mam problemu z wyświetlaniem zwykłego alfanumerycznego, to tylko znak £, który okazuje się problematyczny. Podstawowy plik jest w kodowaniu Windows 1252 i muszę go jako taki służyć. Jeśli zapiszę plik jako UTF-8, otrzymam mojibake zamiast funta.

Czy ktoś ma pojęcie, co mogę zrobić, aby to działało, lub jakiekolwiek ustawienia, które mogą uniemożliwiać jego działanie (inne niż zapisywanie pliku w innym formacie)? Z góry dziękuję.

EDYCJA: Sorry chłopaki, powinienem był wspomnieć wcześniej, ale & funt; nie pomoże. Poza tym, że moje funty nie pojawiają się na stronie, główną częścią mojego problemu jest to, że muszę wstawiać ciągi zawierające £ do bazy danych serwera SQL, ale jeśli utworzę instrukcję SQL INSERT w ASP, żadne znaków £ pojawia się w bazie danych. Wstawianie £ znaków do bazy danych z ASP nie stanowi problemu, gdy zapisuję pliki .asp jako pliki UTF-8, ale potrzebuję wszystkiego, aby pracować w kodowaniu Windows 1252. Dzięki jeszcze raz.

+0

Jakiś powód, dla którego nie robisz tego w kodzie? –

+0

@Sonny Boy, dlaczego to zmieniłoby zachowanie? – jball

Odpowiedz

2

Dzięki za pomoc, wszyscy. Okazuje się, że problem został spowodowany przez mój plik ASP systemu Windows-1252 ładujący plik UTF-8, co zaburzało kodowanie wynikowej strony.

5

Użyj kodu ASCII &pound;

Jest to jednostka HTML i musi być dostępna za pośrednictwem kodu, czytaj więcej here.

+0

Dziękuję za odpowiedź - niestety alby HTML nie pomogą mi, z powodów wyjaśnionych w moim oryginalnym wpisie. Przepraszam, że nie jestem bardziej przejrzysty! –

+0

Nie jestem pewien, £ jest częścią zestawu znaków kodowania Windows 1252, zobacz http://en.wikipedia.org/wiki/Windows-1252 –

3

użyć następujących:

<% Response.Write("&pound;") %> 
1

Jak ten temat?

<% poundsign = Chr(163) %> 
<% Response.Write poundsign %> 
<% Response.Write "£" %> 
+0

Co dziwne, chr (163) wyświetla się jako "s". –

Powiązane problemy