2009-03-21 6 views
10

Ich versuche, die das Urheberrecht und Unendlichkeit Zeichen am unteren Rand meiner Seite mit diesem Code zu erhalten:Wie HTML Verwendung von Unicode-Zeichen in IE zeigen

&#x00A9 Copyright Mikle 2009 - &#x221E 

Dies funktioniert perfekt in Firefox 2, 3 und Chrome . obwohl IE7, zeigt mir die tatsächlichen Codes (wie oben zu sehen) statt, was ich erwarte und der andere Browser zeigen:

© Copyright Mikle 2009 - ∞ 

Dies ist wahrscheinlich einige dumme Sache, aber das macht mich zu verstehen, warum IE wird immer So viel hass. Wie behebe ich das?

Antwort

21

Entities müssen ein Semikolon:

© 

Firefox in diesem Fall falsch über hilfreich ist.

+0

Nun, es scheint wie eine dumme Anforderung, denn es ist keine übliche Phrase ("Hallo mein Freund & # x00fe!"), Warum muss es suchen? Scheint wie unnötige Komplexität. – Mikle

+2

Es ist Teil der HTML-Empfehlung, und die HTML-Empfehlung bevorzugt Vollständigkeit (was zu einfacheren Parsern führt) gegenüber Annahmen. Die Ironie hier ist, dass Sie angenommen IE war schuld, als es in der Tat IE war, die strikt an den "Standard" gehalten wurde. ;-) – Rahul

+3

Ich stimme zu, dass das etwas ironisch ist ... Ich lese viel über Browser-Kompatibilitäten, und wie IE saugt und die ganze strikte VS lose Parsing-Probleme, und siehe da - weniger als 3 Stunden in meinem ersten Web-Projekt (Ich habe hauptsächlich Desktop-Programmierung gemacht) Ich bekomme etwas davon ... – Mikle

6
  1. Dezimalwerte verwenden.
  2. Immer Entity mit beenden; (Semikolon) auch im Kontext, wo es optional ist.
  3. Verwenden Sie benannte Entität wann immer möglich. Ihr Beispiel Entitäten sollten © © und ∞

Anderer Ansatz geschrieben werden, sind über Entitäten zu vergessen und einfach nur da UTF-8-Zeichen setzen.

+0

Dies funktioniert, aber hex ist ein Teil von Unicode, also werde ich die zweite Methode verwenden. – Mikle

+0

Möchten Sie näher darauf eingehen? – vartec

+0

Ihr Leben wird viel einfacher, wenn Sie Ihren HTML-Text auf 7-Bit-ASCII beschränken. Wenn Sie eine 8-Bit-Codierung verwenden, müssen Sie sicherstellen, dass Ihr Webserver den richtigen Antwortparameter einfügt, um diese Codierung zu identifizieren. Und die Chancen stehen gut, dass irgendjemand irgendwo etwas vermasseln wird. – kdgregory

2

Können Sie nicht "©" verwenden?

enthält eine Liste von HTML-Codes für gebräuchliche Symbole.

+0

@Jimmy können Sie Literal HTML als Code einfügen. – vartec