2010-09-26 12 views
5

Potrzebuję znaleźć nazwy znaków Unicode, gdy użytkownik wprowadzi numer dla niego. Przykładem może być wpisanie 0041 i otrzymanie wyniku "Łacińska litera A".Znajdowanie nazwy znaków Unicode za pomocą kodu Javascript

+0

Będziesz musiał utworzyć (lub odpowiedni) tabelę odnośników. Nie ma nic wbudowanego w język lub przeglądarki (lub jakiekolwiek środowisko uruchomieniowe po stronie serwera), które zrobi to za Ciebie. – Pointy

+0

Inne rozwiązania mogą wymagać użycia istniejących modułów lub internetowych interfejsów API. – hippietrail

Odpowiedz

2

O ile mi wiadomo, nie ma na to standardowego sposobu. Prawdopodobnie możesz przetworzyć plik UnicodeData.txt, aby uzyskać te informacje.

+3

@ David Titarenco - celem pliku Index.txt jest generowanie odwzorowań nazw-to-kodowań (takich jak ten: http://www.unicode.org/charts/charindex.html). Zauważysz, że są trzy wpisy dla U + 0041 i żadne dla U + 0042. Różne pliki i ich cele są udokumentowane tutaj: http://unicode.org/reports/tr44/ W zależności od środowiska, w którym działa kod, możesz użyć formatu XML, ale OP nie mówi zbyt wiele o tym, gdzie ten kod zacznie działać. – McDowell

2

Tutaj powinno być to, czego szukasz. Pierwsza tablica to po prostu http://unicode.org/Public/UNIDATA/Index.txt z zastępowaniem znaków nowej linii za pomocą |;

// this mess.. 
var unc = "A WITH ACUTE, LATIN CAPITAL LETTER 00C1| /*... really big array ...*/ |zwsp 200B"; 
var uncs=unc.split("|"); 
var final_a = []; 
var final_s = ""; 
for each (var item in uncs) { 
    var _T=item.split("\t"); 
    //final_a [_T[1]] = _T[0]; 
    final_s += '"' + _T[1] + '"' + ' : ' + '"' + _T[0] + '",'; 
} 

console.log (final_s); 

// yields.. 

var unicode_lookup = { /*really big array*/ } 

// which we can use like so ... 

alert(unicode_lookup["1D01"]); 
// AE, LATIN LETTER SMALL CAPITAL 

SO nie zachowuje kart, więc pierwsza część może nie działać, jeśli po prostu skopiujesz i wkleisz. Zauważysz, że niektóre postacie są duplikatami, więc możesz zrobić porządek.

+0

Dowiedziałem się, że ta odpowiedź może nie być dozwolona w przypadku przepełnienia stosu, ponieważ wymaga zasobów zewnętrznych. [Zobacz komentarz w duplikacie pytania.] (Https://stackoverflow.com/questions/44983646/how-can-i-get-the-official-unicode-of-a-character-in-javascript-from-either ? noredirect = 1 # comment76947882_44983646) – hippietrail

Powiązane problemy