2013-06-24 24 views
11

Czy ktoś wie, jak konwertować Unicode na ciąg znaków w javascript. Na przykład:Konwertowanie znaków Unicode na ciąg znaków

\u2211 -> ∑ \u0032 -> 2 \u222B -> ∫

Zasadniczo chcę, aby być w stanie wyświetlić symbol w xhtml lub html. Nie zdecydowałem, który jeszcze będę używał.

+4

' '\ u2211' ===„Σ'' – Blender

Odpowiedz

11

Po prostu znalazłem sposób: String.fromCharCode(parseInt(unicode,16)) zwraca prawą reprezentację symbolu. Unikod tutaj nie ma numeru \u.

21

funkcję z odpowiedzią k.ken za:

function unicodeToChar(text) { 
    return text.replace(/\\u[\dA-F]{4}/gi, 
      function (match) { 
       return String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16)); 
      }); 
} 

podejmuje wszystkie znaki Unicode w wprowadzonym ciągiem, i konwertuje je do charakteru.

+0

Dzięki tobie i ken ... Jeden uwaga: pierwsze wyrażenie może zostać uproszczone do '/ \\ u [\ dA-Fa-f] {4}/g' – Enissay

+0

Dzięki, po prostu się nad tym zastanowiliśmy i myślę, że można to uprościć. Podziękowania @Enissay –

+0

Czy jest jakaś różnica w wydajności między dodawaniem 'a-f' a używaniem rozróżniania wielkości liter"/gi "bez rozróżniania wielkości liter? –

4

Aby przekształcić daną Unicode-Char jak  do String reprezentacji, można również skorzystać z tej oneliner:

var unicodeToStr = ''.codePointAt(0).toString(16) 

Powyższy przykład daje 'F21D'. Używany z fontAwesome, masz street-widok ikon: '\' F21D

0

Innym sposobem:

const unicodeText = "F1A3"; 
let unicodeChar = JSON.parse(`["\\u${unicodeText}"]`)[0]; 
Powiązane problemy