Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-05 07:56:11 |
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Galkov, если просто старший байт обрезать, то русских букв не получишь. Они в диапазоне >256
|
|||
карма: 1 |
|
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
tsdima писал(а): то русских букв не получишь. Они в диапазоне >256Это в каком стандарте? Насколько я помню -- в кирилических шрифтах последний бит определяет кодовую страницу. Это в расширенных шрифтах, где кодовых страниц больше двух, там действительно номер группы кодовых страниц в старшем байте (если обрезать, то получишь нулевую группу) |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Мы про Unicode
|
|||
карма: 1 |
|
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
tsdima, да, действительно, в Unicode старший байт определяет кодировку. Этот код всегда двухбайтовый, чем он мне и не нравится. ИМХО.
|
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
user, я что задаю вопрос, и кому-то не понятно о чем я спрашиваю
Мне вообще по барабану. До тех пор, пока эстонцы не сообразят, что решение задачи (обратите внимание - не моей) бывает после ее постановки. tsdima, ну расскажи, как выглядит русская 'А' в юникоде В смысле чего следует делать с ними. И, кстати, с "не русскими" из верхней части |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
$10 $04 ну или $410
[size=-2]------ Добавлено в 23:57 Как оно выглядит, можешь и сам посмотреть: сохрани русский текст в notepad-е в Unicode, а потом посмотри в hex Погляди файл c_1251.nls 1. $1C байтовый заголовок 2. таблица соответствия char -> wchar 3. таблица соответствия wchar -> char |
|||
карма: 1 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Фигня какая-то получается:
яю< ? x m l v e r s i o n = " 1 . 0 " ? > < M s I n f o > < M e t a d a t a > < V e r s i o n > 7 . 0 < / V e r
s i o n > < C r e a t i o n U T C > 0 2 / 0 4 / 0 7 1 2 : 3 5 : 1 9 < / C r e a t i o n U T C > < / M e t a d a t a > < C a t e g o r y n a m e = " ! 2 5 4 5 = 8 O > A 8 A B 5 < 5 " > < D a t a > < - ; 5 < 5 = B > < ! [ C D A T A [ < O ! ] ] > < / - ; 5 < 5 = B > < = 0 G 5 = 8 5 > < ! [ C D A T A [ M i c r o s o f t W i n d o w s X P H o m e E d i t i o n ] ] > < / = 0 G 5 = 8 5 > < / D a t a > < D a t a > < - ; 5 < 5 = B > < ! [ C D A T A [ 5 @ A 8 O ] ] > < / - ; 5 < 5 = B > < = 0 G 5 = 8 5 > < ! [ C D A T A [ 5 . 1 . 2 6 0 0 S e r v i c e P a c k 2 ! 1 > @ : 0 2 6 0 0 ] ] > < / = 0 G 5 = 8 5 > < / D a t a > < D a t a > < - ; 5 < 5 = B > < ! [ C D A T A [ 7 3 > B > 2 8 B 5 ; L ! ] ] > < / - ; 5 < 5 = B > < = 0 G 5 = 8 5 > < ! [ C D A T A [ M i c r o s o f t C o r p o r a t i o n ] ] > < / = 0 G 5 = 8 5 > < / D a t a > < D a t a > < - ; 5 < 5 = B > < ! [ C D A T A [ < O A 8 A B 5 < K ] ] > < / - ; 5 < 5 = B > < = 0 G 5 = 8 5 > < ! [ C D A T A [ A C E R ] ] > < / = 0 G 5 = 8 5 > < / D a t a > < D a t a > < - ; 5 < 5 = B > < ! [ C D A T A [ 7 3 > B > 2 8 B 5 ; L ] ] > < / - ; 5 < 5 = B > < = 0 G 5 = 8 5 > < ! [ C D A T A [ A c e r ] ] > < / = 0 G 5 = 8 5 > < / D a t a > < D a t a > < - ; 5 < 5 = B > < ! [ C D A T A [ > 4 5 ; L ] ] > < / - ; 5 < 5 = B > < = 0 G 5 = 8 5 > < ! [ C D A T A [ A s p i r e ] ] > < / = 0 G 5 = 8 5 > < / D a t a > < D a t a > < - ; 5 < 5 = B > < ! [ C D A T A [ " 8 ? ] ] > < / - ; 5 < 5 = B > < = 0 G 5 = 8 5 > < ! [ C D A T A [ > < ? L N B 5 @ = 0 1 0 7 5 X 8 6 ] ] > < / = 0 G 5 = 8 5 > < / D a t a > < D a t a > < - ; 5 < 5 = B > < ! [ C D A T A [ @ > F 5 A A > @ ] ] > < / - ; 5 < 5 = B > < = 0 G 5 = 8 5 > < ! [ C D A T A [ x 8 6 F a m i l y 1 5 .... а должно быть так: <?xml version="1.0"?>
<MsInfo> <Metadata> <Version>7.0</Version> <CreationUTC>01/31/07 22:18:13</CreationUTC> </Metadata> <Category name="Сведения о системе"> <Data> <Элемент>[CDATA[Имя ОС]]</Элемент> <Значение>[CDATA[Microsoft Windows XP Home Edition]]</Значение> </Data> <Data> <Элемент>[CDATA[Версия]]</Элемент> <Значение>[CDATA[5.1.2600 Service Pack 2 Сборка 2600]]</Значение> </Data> <Data> <Элемент>[CDATA[Изготовитель ОС]]</Элемент> <Значение>[CDATA[Microsoft Corporation]]</Значение> </Data> <Data> <Элемент>[CDATA[Имя системы]]</Элемент> <Значение>[CDATA[ACER]]</Значение> </Data> <Data> <Элемент>[CDATA[Изготовитель]]</Элемент> <Значение>[CDATA[Acer]]</Значение> </Data> <Data> <Элемент>[CDATA[Модель]]</Элемент> <Значение>[CDATA[Aspire]]</Значение> </Data> <Data> <Элемент>[CDATA[Тип]]</Элемент> |
|||
карма: 0 |
|
Ответов: 3514
Рейтинг: 184
|
|||
Ну английский понимает, осталась латиница
[size=-2]------ Добавлено в 22:15 в Unicode старший байт определяет кодировку
Может с этим что? |
|||
карма: 0 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Хотелось что-то по проше! В данном варианте и с латиницей не пойдет
|
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Ну что непонятно? Читаешь word, пишешь byte если <256, если от 1040 до 1071, вычитаешь 1039 и берёшь один символ из строки с данной позицией. Строка, ес-сно, такая
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя |
|||
карма: 1 |
|
Ответов: 1891
Рейтинг: 110
|
|||
tsdima, спасибо. Попробую.
|
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Alexbootch, первые 2 байта - это индикатор того, что файл - в Unicode (2хбайтная кодировка), и их можно пропускать.
|
|||
карма: 1 |
|
28