Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Sep 18, 2019 11:16 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 23 posts ]  Go to page Previous 1 2
Author Message
 Post subject:
PostPosted: Thu Oct 12, 2006 10:22 pm 
Offline

Joined: Thu Jan 26, 2006 8:47 pm
Posts: 284
я тож в свое время писал макросы первода кодировки win->dos и dos->win
Code:
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:
}

Code:
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:
}


Top
   
 Post subject:
PostPosted: Thu Oct 12, 2006 11:21 pm 
Поддерживаю mike.dld - дофига было опыта и мучений при создании / переносе всяких сайтов, гостевых, и прочего, утф8 рулит. Однако camper тож прав - у пользователей винды файлы поименованы в win1251, а у пингвинятников - скорее всего в koi8.


Top
   
 Post subject:
PostPosted: Fri Oct 13, 2006 9:54 am 
Offline
Kernel Developer

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


Top
   
 Post subject: Re:
PostPosted: Wed Oct 12, 2011 5:22 pm 
Offline

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

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

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


Top
   
PostPosted: Wed Oct 12, 2011 5:43 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
В UTF16 вообще-то тоже переменная длина символов, спасибо комитету Unicode за суррогатные пары.

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


Top
   
PostPosted: Wed Oct 12, 2011 7:25 pm 
Offline

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


Top
   
PostPosted: Thu Oct 13, 2011 2:50 am 
Offline

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

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


Top
   
PostPosted: Sun Nov 20, 2011 8:33 pm 
Offline

Joined: Wed May 18, 2005 7:27 pm
Posts: 1001
http://www.cs.helsinki.fi/u/twruottu/mos/uc/ может поможет


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 23 posts ]  Go to page Previous 1 2

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited