На португальском языке сам язык называется «português», где «ê» можно выразить в Юникоде как кодовую точку U + EA, которая является LATIN SMALL LETTER E CIRCUMFLEX, или как обычный ' e ', за которым следует кодовая точка U + 301, КОМБИНИРОВАННАЯ ЦИРКУМФЛЕКСНАЯ АКЦЕНТ. Таким образом, строка может быть 9, но может содержать 10 символов. Более длинная форма находится в форме нормализации D (образованной каноническим разложением), а более короткая - в NFC (образованная каноническим разложением , а затем по каноническому составу).
Однако, когда слово искажено, диакритика теряется, поэтому слова, подобные «portuguesas», которые согласуются по числу и полу с существительным «empresas», вообще не должны иметь диакритики.
Строка, которую вы отправили, содержит в ней только один символ, отличный от ASCII, и это печатный. Это слово «па».
Это показывает каждую логический код точку UTF-8 ввод:
$ echo "das empresas portuguesas neste país" | perl -CS -ne 'printf "%v02X\n", $_'
64.61.73.20.65.6D.70.72.65.73.61.73.20.70.6F.72.74.75.67.75.65.73.61.73.20.6E.65.73.74.65.20.70.61.ED.73.0A
И это показывает, каждые отдельные байты этого:
$ echo "das empresas portuguesas neste país" | perl -C0 -ne 'printf "%v02X\n", $_'
64.61.73.20.65.6D.70.72.65.73.61.73.20.70.6F.72.74.75.67.75.65.73.61.73.20.6E.65.73.74.65.20.70.61.C3.AD.73.0A
Вот как это сделать, если вы хотите только см точки не-ASCII код:
# logical code points
$ echo "das empresas portuguesas neste país" | perl -CS -pe 's/[^\x00-\x7F]/sprintf "\x5Cx{%X}", ord $&/ge'
das empresas portuguesas neste pa\x{ED}s
# separate bytes
$ echo "das empresas portuguesas neste país" | perl -C0 -pe 's/[^\x00-\x7F]/sprintf "\x5Cx%X", ord $&/ge'
das empresas portuguesas neste pa\xC3\xADs
это «я» может быть код точки U + ED, или это может быть правильным «я ', За которым следует кодовая точка U + 301, КОМБИНИРОВАННАЯ ОСТРОЕ АКЦЕНТ. Если да, то это будет отображаться как это:
# show the NFD form
$ perl -CS -le 'print "das empresas portuguesas neste pai\x{301}s"'
das empresas portuguesas neste país
# show UTF-8 non-ASCII code points
$ perl -CS -le 'print "das empresas portuguesas neste pai\x{301}s"' | perl -CS -pe 's/[^\x00-\x7F]/sprintf "\x5Cx{%X}", ord $&/ge'
das empresas portuguesas neste pai\x{301}s
# show non-ASCII bytes
$ perl -CS -le 'print "das empresas portuguesas neste pai\x{301}s"' | perl -C0 -pe 's/[^\x00-\x7F]/sprintf "\x5Cx%X", ord $&/ge'
das empresas portuguesas neste pai\xCC\x81s
Может быть, что переполнение стека (или что-то еще) переписал вашу строку, возможно, удаление непечатаемых символов. Таким образом, у вас могут быть вещи, которые мы не можем видеть, потому что это не в данных, на которые мы смотрели.
ли они избежали символов? код ASCII или номер юникода может помочь –
Это пробел. Ищите самый большой ключ на клавиатуре. –
Если это скрытый персонаж, как его можно разместить на веб-странице? – skaffman