2010-11-09 9 views

risposta

80

parser SGML (o parser XML nel caso di XHTML) in grado di gestire — senza dover elaborare la DTD (che non importa a browser come hanno appena slurp zuppa di tag), mentre — è più facile per gli esseri umani da leggere e scrivi nel codice sorgente

Personalmente, vorrei attenermi a un em-trattino letterale e garantire che le mie impostazioni di codifica dei caratteri fossero coerenti.

1

Potrebbe essere che l'utilizzo del codice numerale è più universale, in quanto è un riferimento diretto a un personaggio nella tabella dell'entità HTML, ma immagino che entrambi funzionino ovunque. La prima notazione è enormemente più facile da ricordare per molti personaggi.

12

Sono esattamente lo stesso personaggio. Vedi: http://en.wikipedia.org/wiki/Dash

blocco delle chiamate bug del browser saranno visualizzare la stessa in tutti i casi, per cui l'unica differenza sarebbe preoccupante la leggibilità del codice, che indicare —.

Oppure, se si utilizza UTF-8 come set di caratteri nel documento HTML, è possibile immettere direttamente il carattere. Ciò mostrerebbe anche esattamente la stessa cosa.

+5

Si noti che questo solo vero per HTML, in XML, '&8212;' funziona sempre mentre '—' dipende dall'aver dichiarato l'entità. – Flimm

2

— :: :: —\u2014

Quando si rappresenta l'm-dash in una stringa di testo JavaScript per l'output HTML, notare che esso rappresentato dal suo valore Unicode. Ci sono casi in cui caratteri e commerciale ('&') non verranno risolti, in particolare determinati contesti all'interno di JSX. In questo caso, né lo — né lo — funzioneranno. Invece è necessario utilizzare la sequenza di escape Unicode: \u2014.

Per esempio, in sede di attuazione di un metodo render() al testo di output da una variabile JavaScript:

render() { 
    let text='JSX transcoders will preserve the & character—to ' 
      + 'protect from possible script hacking and cross-site hacks.' 
    return (
    <div>{text}</div> 
    ) 
} 

Questo stamperà:

<div>JSX transcoders will preserve the & character&mdash;to protect from possible script hacking and cross-site hacks.</div> 

Invece del & - rappresentazione prefissato, è necessario utilizzare \ u2014:

let text='JSX transcoders will preserve the & character\u2014to '… 
+1

Funziona alla grande con React. – Green

-1

Da W3 siamo b sito Common HTML entities used for typography

Per motivi di portabilità, Unicode riferimenti di entità dovrebbe essere riservato per l'uso nei documenti certo di essere scritto in UTF-8 o UTF-16 set di caratteri. In tutti gli altri casi, dovrebbero essere utilizzati i riferimenti alfanumerici.

Traduzione: Se siete alla ricerca di un sostegno più ampio, andare con &mdash;

Problemi correlati