Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 11:39 04.07.25 
Компютри и Интернет
   >> Програмисти
*Кратък преглед

Тема Unicodeнови  
Автор Phill (Регистриран)
Публикувано15.08.03 09:48



Здравейте,
Знаете ли как се разбира начина на кодиране на текстови файлове. Дали са уникод, или пък са с някакъв charset различен от стандартния. Някакви уин-апи функции или има сигнатури в самия файл.
Имам тука един сорс на делфи дето го прави това, но го прави абсолютно самостоятелно, без да ползва някакви специални функции.
Благодаря ви предварително.



Тема Re: Unicodeнови [re: Phill]  
Автор пpoГЪPMИcт (ненормален)
Публикувано15.08.03 10:23



Здрасти

Мисля, че UNICODE текстовите файлове започват с FF FE (шестнайсетично). И по това се различават от останалите текстови файлове
Ама не съм 100% сигурен.

Бии, за да те уважават!


Тема Re: Unicodeнови [re: Phill]  
Автор Плaмeн (ентусиаст)
Публикувано15.08.03 18:16



ако е наистина текстов файл, а не специфичен стандартен или частен формат, няма никакви указания за кодировката.
ако сканираш файла за който знаеш, че е текстов и намериш в него байт със стойност 0, това СЪС СИГУРНОСТ Е unicode, но ако не намериш, не значи, че не е, въпреки че е малко вероятно, да няма вътре поне интервал или нов ред :)

П.П. наистина notepad и други текстови редактори слагат в началото FF FE, но това не е гаранция, да не говорим, че съгласно Windows1251 (кирилица) това не е невалидна комбинация, въпреки че е малко вероятно да я има в началото на файла, освен ако не си писал азбуката в обратен ред.

Редактирано от Плaмeн на 15.08.03 18:21.



Тема Re: Unicodeнови [re: Плaмeн]  
Автор drone ()
Публикувано18.08.03 12:17



FEFF (FFFE za little endian) e signaturata za UTF16. EFBBBF e za UTF8. i dwete pokazwat unicode. Win1251 ne e unicode (w smisyl - toj e samo izwadka ot unicode) i nqma na4in da razbere6 4e fajl e w win1251 codding, za html izri4no se ukazwa. ami towa e ob6to wzeto - ako e ascii fajla nqma na4in da razbere6 kakwo e kodiraneto, pri unicode nqma kodirane w smisyl na codepage - pri utf8 wseki simwol e direktno adresiran i po towa kosweno move6 da razbere6 za kakyw ezik stawa wypros. za towa da viwee unicode ;) - edinstwenoto neudobstwo e 4e trqbwa da se parswa :)



Тема Re: Unicodeнови [re: drone]  
Автор ess (...и бира чадо!)
Публикувано18.08.03 14:04



Грубо казано Unicode е стандарт за описване на символи - в смисъл на даден символ от някой език (жив или мъртъв) е присвоено число.
А UTF8, UTF16, UTF32, Win1251 за начини за кодиране на това съответствие в съответният брой байтове за символ. В общия случай UTF16 съответства 1:1 с Unicode, но вече има и UTF32 (т.е. символа е кодиран с 4 байта), защото Unicode отдавна мина границата от 2 байтовия range.
Така, че UTF8 си е кодиране. И не виждам защо човек трябва да се тормози с парсване, като всяка среда (Windows, Linux пр.) си има съответните системни функции.
Вярно е, че за да разпознаеш дали даден текст е UTF8 или UTF16 напр., е нужна доста евристика (ако сигнатурата липсва или не и вярваш)....

---
Не е важно да си добър, важното е да си ман-и-як!


Тема Re: Unicode [re: ess]  
Автор drone ()
Публикувано18.08.03 15:02



e ne e to4no taka... utf8 ne e ednobajtow - mislq 4e be6e ot 1 do 4 bytes (ili be6e do 5!?!?) utf16 e poorqzan, no predimstwoto mu e, 4e fixnat na dwa bajta. ewristika nqma nikakwa, no pri utf8 si trqbwa parswane (wqrno, 4e si ima libowe za celta). win1251 ne e unicode. wyob6te s tiq kodowi tablici e golqma ludnica - wseki si ima swoj - IBM, MS, MAC, ISO, abe ludnica ;) a unicode si e unicode, nadqwam se skoro we4e wsi4ko da e unicode



Тема Re: Unicodeнови [re: drone]  
Автор ess (...и бира чадо!)
Публикувано18.08.03 17:20



Да, UTF8 не е еднобайтово кодиране, така е. А за евристиката не си прав.

Извадка от Win32 API help-a:

IsTextUnicode
The IsTextUnicode function determines whether a buffer is likely to contain a form of Unicode text. The function uses various statistical and deterministic methods to make its determination, under the control of flags passed via lpi. When the function returns, the results of such tests are reported via lpi.

BOOL IsTextUnicode(

CONST VOID* pBuffer, // input buffer to be examined
int cb, // size of input buffer
LPINT lpi // options
);


И още нещо: то и сега всичко може да си правиш Unicode, ама за връзка с външният свят ти трябват всичките тия UTFxx, Win1251 и прочие...

---
Не е важно да си добър, важното е да си ман-и-як!

Тема Re: Unicodeнови [re: ess]  
Автор Phill (Регистриран)
Публикувано18.08.03 21:06



Здравейте,

Вече си оправих нещата, попрочетох тва онова, разгледах и някой друг сорс. Прави сте за всичко.

Благодаря!

и- Unicode рулзз




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.