I want to extract all characters from text file for create subset font. How I can extract and sort characters?
Example:
input "Hello, Harry. 안녕? 잘 지내니? おはよう。どうもありがとう。"
↓
output " ,.?Haelory。あうおがとどはもより내녕니안잘지"
perl -C -Mutf8 -MList::Util=uniq -E'say uniq sort "Hello, Harry. 안녕? 잘 지내니? おはよう。どうもありがとう。" =~ /(\X)/g'
В JavaScript это будет:
let input = "Hello, Harry. 안녕? 잘 지내니? おはよう。どうもありがとう。";
let output = [...new Set(Array.from(input))].sort().join('');
// -> " ,.?Haelory。あうおがとどはもより내녕니안잘지"
Это не помогает, проблема в Array.from
.
Не уверен, каков правильный ожидаемый результат, но список кодовых точек строки «ᄀᄀᄀ각ᆨᆨ» равен <U+1100 U+1100 U+1100 U+AC01 U+11A8 U+11A8>
; так как элементарные символы ᄀ U+1100 HANGUL CHOSEONG KIYEOK
и ᆨ U+11A8 HANGUL JONGSEONG KIYEOK
различны, хотя и выглядят одинаково, это нормально, что они появляются отдельно в результирующей выходной строке...
В зависимости от того, написаны ли символы хангыль в составной или разложенной форме, вам, возможно, придется сначала нормализовать строку в форме NFC:
let output = [...new Set(Array.from(input.normalize('NFC')))].sort().join('');