Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#16: 2007-02-04 22:26:53 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-05 07:56:11
карма: 0

0
Ответов: 2125
Рейтинг: 159
#17: 2007-02-04 23:06:56 ЛС | профиль | цитата
Galkov, если просто старший байт обрезать, то русских букв не получишь. Они в диапазоне >256
карма: 1

0
Разработчик
Ответов: 26158
Рейтинг: 2127
#18: 2007-02-04 23:36:41 ЛС | профиль | цитата
tsdima писал(а):
то русских букв не получишь. Они в диапазоне >256

Это в каком стандарте? Насколько я помню -- в кирилических шрифтах последний бит определяет кодовую страницу. Это в расширенных шрифтах, где кодовых страниц больше двух, там действительно номер группы кодовых страниц в старшем байте (если обрезать, то получишь нулевую группу)
карма: 22

0
Ответов: 2125
Рейтинг: 159
#19: 2007-02-04 23:44:38 ЛС | профиль | цитата
Мы про Unicode
карма: 1

0
Разработчик
Ответов: 26158
Рейтинг: 2127
#20: 2007-02-04 23:47:43 ЛС | профиль | цитата
tsdima, да, действительно, в Unicode старший байт определяет кодировку. Этот код всегда двухбайтовый, чем он мне и не нравится. ИМХО.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#21: 2007-02-04 23:52:13 ЛС | профиль | цитата
user, я что задаю вопрос, и кому-то не понятно о чем я спрашиваю
Мне вообще по барабану.
До тех пор, пока эстонцы не сообразят, что решение задачи (обратите внимание - не моей) бывает после ее постановки.

tsdima, ну расскажи, как выглядит русская 'А' в юникоде
В смысле чего следует делать с ними.
И, кстати, с "не русскими" из верхней части
карма: 9

0
Ответов: 2125
Рейтинг: 159
#22: 2007-02-04 23:57:50 ЛС | профиль | цитата
$10 $04 ну или $410

[size=-2]------ Добавлено в 23:57
Как оно выглядит, можешь и сам посмотреть: сохрани русский текст в notepad-е в Unicode, а потом посмотри в hex

Погляди файл c_1251.nls
1. $1C байтовый заголовок
2. таблица соответствия char -> wchar
3. таблица соответствия wchar -> char

карма: 1

0
Ответов: 1891
Рейтинг: 110
#23: 2007-02-08 21:44:57 ЛС | профиль | цитата
Фигня какая-то получается:
яю< ? 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
%time%
0
Ответов: 3514
Рейтинг: 184
#24: 2007-02-08 22:15:54 ЛС | профиль | цитата
Ну английский понимает, осталась латиница

[size=-2]------ Добавлено в 22:15
в Unicode старший байт определяет кодировку

Может с этим что?
карма: 0
0
Ответов: 1891
Рейтинг: 110
#25: 2007-02-08 22:27:11 ЛС | профиль | цитата
Хотелось что-то по проше! В данном варианте и с латиницей не пойдет
карма: 0
%time%
0
Ответов: 2125
Рейтинг: 159
#26: 2007-02-08 22:39:38 ЛС | профиль | цитата
Ну что непонятно? Читаешь word, пишешь byte если <256, если от 1040 до 1071, вычитаешь 1039 и берёшь один символ из строки с данной позицией. Строка, ес-сно, такая
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя

карма: 1

0
Ответов: 1891
Рейтинг: 110
#27: 2007-02-08 22:47:02 ЛС | профиль | цитата
tsdima, спасибо. Попробую.
карма: 0
%time%
0
Ответов: 5446
Рейтинг: 323
#28: 2007-02-10 13:50:42 ЛС | профиль | цитата
Alexbootch, первые 2 байта - это индикатор того, что файл - в Unicode (2хбайтная кодировка), и их можно пропускать.
карма: 1

0
28
Сообщение
...
Прикрепленные файлы
(файлы не залиты)