Парни, можно как-нибудь проверить, что текст содержит только символы юникода?
т.е. нужно, чтобы вот такая строка "ОПАsdfsd•adfasdte" сругнулась бы на центральный символ(он кстати аж 3мя байтами представляется.
а вот без точки — все ок
Character.isDefined — не канает, т.к. он побайтно проверяет
пока вот можно, конечно, зажаться на кол-во байтов
Здравствуйте, pvnic, Вы писали:
P>Парни, можно как-нибудь проверить, что текст содержит только символы юникода?
UTF-8 и Unicode это не слова-синонимы.
P>т.е. нужно, чтобы вот такая строка "ОПАsdfsd•adfasdte" сругнулась бы на центральный символ(он кстати аж 3мя байтами представляется. P>а вот без точки — все ок P>Character.isDefined — не канает, т.к. он побайтно проверяет
Каждый символ сконвертить в UTF-8 и посмотреть количество байт?
Здравствуйте, pvnic, Вы писали:
P>Парни, можно как-нибудь проверить, что текст содержит только символы юникода?
P>т.е. нужно, чтобы вот такая строка "ОПАsdfsd•adfasdte" сругнулась бы на центральный символ(он кстати аж 3мя байтами представляется. P>а вот без точки — все ок
P>Character.isDefined — не канает, т.к. он побайтно проверяет
P>пока вот можно, конечно, зажаться на кол-во байтов
Ничего не понятно. Текст по определению содержит только символы юникода. Чем вам центральный символ не понравился — не понятно. Вам надо, чтобы каждый символ кодировался не более чем двумя байтами в UTF-8?
Здравствуйте, vsb, Вы писали:
vsb>Ничего не понятно. Текст по определению содержит только символы юникода. Чем вам центральный символ не понравился — не понятно. Вам надо, чтобы каждый символ кодировался не более чем двумя байтами в UTF-8? http://www.fileformat.info/info/unicode/char/2022/index.htm
этот буллит в UTF-8 кодируется 3мя байтами — e280a2. Но почему такая задача стоит, действительно не ясно. Вполне валидный 3х байтовый UTF-8.
Можно ещё после конвертации в UTF-8 отсканивать в поисках символов, которые начинают 3х байтовую UTF-8 последовательность. http://www.fileformat.info/info/unicode/utf8.htm
Хотя если начальное условие — сам текст. То можно код символа проверять на вход в 1-2х байтовый диапазон. Там же по ссылке — Maximum Expressible Unicode Value