2010-09-26 2 views
5

Мне нужно узнать имена символов Юникода, когда пользователь вводит номер для него. Примером может служить ввод 0041 и получение в качестве результата «Латинской буквы капитала».Поиск имени символа Юникода с помощью Javascript

+0

Вам придется построить (или уместно) таблицу поиска. В языке или браузерах (или на любой серверной версии, о которой я знаю) ничего не будет сделано, чтобы это сделать для вас. – Pointy

+0

Другие решения могут включать использование существующих модулей или веб-API. – hippietrail

ответ

2

Насколько я знаю, нет стандартного способа сделать это. Возможно, вы можете разобрать файл UnicodeData.txt, чтобы получить эту информацию.

+3

@David Titarenco - целью Index.txt является создание сопоставлений имен для кодовых точек (например, этот: http://www.unicode.org/charts/charindex.html). Вы заметите, что для U + 0041 есть три записи, а для U + 0042 - нет. Различные файлы и их цели описаны здесь: http://unicode.org/reports/tr44/ В зависимости от среды, в которой работает код, вы можете использовать формат XML, но OP не говорит о том, где этот код будет запущен. – McDowell

2

Здесь должно быть то, что вы ищете. Первый массив - это просто http://unicode.org/Public/UNIDATA/Index.txt с заменой новых строк на |;

// 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 не сохраняет вкладки, поэтому первая часть может не работать, если вы просто скопируете ее. Вы заметите, что некоторые символы дублируются, поэтому вы можете выполнить некоторую очистку.

+0

Я узнал, что этот ответ не может быть разрешен для переполнения стека, так как он требует ресурсов вне сайта. [См. Комментарий в двойном вопросе.] (Https://stackoverflow.com/questions/44983646/how-can-i-get-the-official-unicode-name-of-a-character-in-javascript-from-either ? noredirect = 1 # comment76947882_44983646) – hippietrail