Есть ли байты разделителя для символов UTF8?

Если у меня есть массив байтов, который содержит содержание UTF8, как я пошел бы о парсинге его? Есть ли байты разделителя, которые я могу отделить для получения каждого символа?

9
задан live2dream95 23 February 2010 в 22:56
поделиться

2 ответа

То, что вы ищете, называется: фрагменты кода

Я лично использую фрагменты, предоставленные в VAssistX, но это условно-программное обеспечение, так что это может быть не лучшим решением для вашей компании. Кстати, если вы разрабатываете приложение на Visual C++ без VAssistX вы тратите много времени;)

Также есть менеджер фрагментов кода в Visual Studio, я никогда не использовал его, но я нашел некоторые документы на google:

http://msdn.microsoft.com/en-us/library/d60kx75h (VS.80) .aspx

и

http://blogs.microsoft.co.il/blogs/gilf/archive/2009/01/17/how-to-write-your-own-code-snippets.aspx

Я надеюсь, что это будет

-121--1866646-

Попробуйте использовать один запрос с JOINs вместо петель python.

-121--3383458-

Посмотрите здесь...

http://en.wikipedia.org/wiki/UTF-8

Если вы хотите определить границу между символами, то в таблице «Description» появится нужная информация.

Единственный способ получить высокий нулевой бит - ASCII подмножество 0.. 127, закодированное в один байт. Все кодовые точки не-ASCII имеют 2-й байт и далее с «10» в двух самых высоких битах. Ведущий байт кодовой точки никогда не имеет этого - это старшие биты указывают количество байтов, но есть некоторая избыточность - вы можете в равной степени наблюдать за следующим байтом, который не имеет «10», чтобы указать следующую кодовую точку.

0xxxxxxx : ASCII
10xxxxxx : 2nd, 3rd or 4th byte of code
11xxxxxx : 1st byte of code, further high bits indicating number of bytes

Кодовая точка в Юникоде не обязательно совпадает с символом. Существуют, например, кодовые точки-модификаторы (например, акценты).

13
ответ дан 4 December 2019 в 15:17
поделиться

Байты, у которых первый бит установлен на 0, являются обычными символами ASCII. Байты, для которых первый бит установлен в 1, являются частью символа UTF-8.

Первый байт в каждом символе UTF-8 имеет второй бит, установленный в 1, так что байт имеет старшие биты 11 . Каждый последующий байт, принадлежащий одному и тому же символу UTF-8, вместо этого начинается с 10 .

Первый байт каждого символа UTF-8 дополнительно указывает, сколько из следующих байтов принадлежит символу, в зависимости от количества битов, которые установлены в 1 в наиболее значимых битах этого байта.

Дополнительные сведения см. На странице Википедии для UTF-8.

0
ответ дан 4 December 2019 в 15:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: