Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс сен 24, 2017 1:21 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 23 сообщения ]  На страницу Пред. 1 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 12, 2006 10:22 pm 
Не в сети

Зарегистрирован: Чт янв 26, 2006 8:47 pm
Сообщения: 284
я тож в свое время писал макросы первода кодировки win->dos и dos->win
Код:
macro dostowin stroka,dlina
{
local .engbykvi,.nexting,.nach,.end,.length,.x1
jmp .x1
   .length dd 0
.x1:
   mov eax,dlina
   sub eax,1
   mov [.length],eax
.nach:
    mov eax,[.length]
    cmp eax,0
    jl .end
    mov bl,byte [stroka+eax]
    cmp bl,128
    jb .engbykvi
        cmp bl,224
        jb .nexting
                add bl,16
                jmp .engbykvi
        .nexting:
        add bl,64
    .engbykvi:
    mov byte [stroka+eax],bl
    dec [.length]
    jmp .nach
.end:
}

Код:
macro wintodos stroka,dlina
{
local .engbykvi,.nexting,.nach,.end,.length,.x1
jmp .x1
   .length dd 0
.x1:
   mov eax,dlina
   sub eax,1
   mov [.length],eax
.nach:
    mov eax,[.length]
    cmp eax,0
    jl .end
    mov bl,byte [stroka+eax]
    cmp bl,192
    jb .engbykvi
        cmp bl,240
        jb .nexting
                sub bl,16
                jmp .engbykvi
        .nexting:
        sub bl,64
    .engbykvi:
    mov byte [stroka+eax],bl
    dec [.length]
    jmp .nach
.end:
}


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 12, 2006 11:21 pm 
Поддерживаю mike.dld - дофига было опыта и мучений при создании / переносе всяких сайтов, гостевых, и прочего, утф8 рулит. Однако camper тож прав - у пользователей винды файлы поименованы в win1251, а у пингвинятников - скорее всего в koi8.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 13, 2006 9:54 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
В UTF-8 переменная длина символов. Это усложняет работу со строками. И неясно как забивать UTF строки в Фасме. Проще сделать обычный Юникод.


Вернуться к началу
 Заголовок сообщения: Re:
СообщениеДобавлено: Ср окт 12, 2011 5:22 pm 
Не в сети

Зарегистрирован: Пн сен 26, 2011 3:01 pm
Сообщения: 33
Serge писал(а):
В UTF-8 переменная длина символов. Это усложняет работу со строками. И неясно как забивать UTF строки в Фасме. Проще сделать обычный Юникод.

utf8 хорош как формат обмена - из-за совместимости с ascii.

и его нетрудно конвертить в utf16 внутри программы.


Вернуться к началу
 Заголовок сообщения: Re: Разные кодировки
СообщениеДобавлено: Ср окт 12, 2011 5:43 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1598
В UTF16 вообще-то тоже переменная длина символов, спасибо комитету Unicode за суррогатные пары.

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Re: Разные кодировки
СообщениеДобавлено: Ср окт 12, 2011 7:25 pm 
Не в сети

Зарегистрирован: Пн сен 26, 2011 3:01 pm
Сообщения: 33
Тоже правда. Впрочем, масса народу на них кладёт без зазрения совести. Если хочется совсем уж красоты - никто не мешает 32 бита на символ потратить - с точки зрения производительности даже хорошо. :) Промежуточный вариант - грузить utf8 в 16, а если встретишь пару - ругаться и отказываться такой файл читать.


Вернуться к началу
 Заголовок сообщения: Re: Разные кодировки
СообщениеДобавлено: Чт окт 13, 2011 2:50 am 
Не в сети

Зарегистрирован: Ср дек 26, 2007 5:09 am
Сообщения: 214
Если есть стремление к экономии памяти и одновременно к гибкости, то для внутриядерных сущностей можно использовать UCS-2 -- тот же UTF16, но без суррогатных пар. Для всяких там имён устройств, задач и т.д. и т.п. большего и не надо. Ну а уж в прикладных программах, занятых обработкой данных (типа текстовых редакторов) надо поддерживать полноценный Юникод. Учитывая, что даже на самом древнем из более-менее доступных ПК памяти завались (сотни мегабайт как минимум), для внутреннего представления в них можно использовать 32-разрядную кодировку. Впрочем, его же можно использовать и в ядре, ведь и здесь память -- не слишком острый вопрос. Ну а применять, например, UTF8 для обработки -- ИМХО, слишком неудобно, да и медленно.

Пы.Сы. У себя в ядре я использую UCS-2, но на МК память -- куда более дефицитный ресурс, её может быть всего пару-тройку десятков килобайт ОЗУ (ну, плюс флэш-ПЗУ для кода, но оно в данном случае не в счёт).


Вернуться к началу
 Заголовок сообщения: Re: Разные кодировки
СообщениеДобавлено: Вс ноя 20, 2011 8:33 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
http://www.cs.helsinki.fi/u/twruottu/mos/uc/ может поможет


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 23 сообщения ]  На страницу Пред. 1 2

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB