AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Помогите Пожалуйста с кодировками
Goto page 1, 2  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
beerbitch



Joined: 30 Nov 2009
Posts: 5

PostPosted: Mon Nov 30, 2009 6:07 pm    Post subject: Помогите Пожалуйста с кодировками Reply with quote

Проблема такова, сохранил русский текст в .txt документ из кодировки 1251 (ANSI-Кириллица) в кодировку 20127 (США-ASCII), после переместил на мобильник Nokia 5800, открыл и увидел что везде вместо русских букв знаки вопроса "???????", после открыл документ на компьютере и там оказалось тоже самое, пытался поменять кодировку, но ничего не изменялось Sad
Что нужно сделать чтобы русский текст вернулся?
Заранее Спасибо
Вот ссылка на пример этого непонятного для меня явления:
http://ifolder.ru/15238114
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2007
Location: Vinnitsa, Ukraine

PostPosted: Mon Nov 30, 2009 6:36 pm    Post subject: Reply with quote

beerbitch, вспоминайте где брали источник. Вам даже бубен не поможет в этом случае. Когда сохраняли Вас предупреждали что символы будут утеряны. Вот они и утеряны.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
beerbitch



Joined: 30 Nov 2009
Posts: 5

PostPosted: Mon Nov 30, 2009 6:52 pm    Post subject: Reply with quote

Спасибо FeyFre, теперь понял что восстановить невозможно...ведь откат системы не поможет Sad
P.S. Винница Smile У меня там друзья живут
Back to top
View user's profile Send private message
Razmus



Joined: 13 Mar 2008
Posts: 27

PostPosted: Tue Dec 01, 2009 12:38 pm    Post subject: Reply with quote

FeyFre wrote:
beerbitch,Когда сохраняли Вас предупреждали что символы будут утеряны. Вот они и утеряны.


А нельзя ли, для таких случаев, добавить еще одну кнопку с предложением кодировки в которой символы не будут утеряны(кодировку предлагать исходя из популярности кодировки), а также возможность пользователю выбрать кодировку самостоятельно из того же окна.

З.Ы.
Может вынести предложение в отдельную тему.
Back to top
View user's profile Send private message Send e-mail
FeyFre



Joined: 07 Aug 2007
Posts: 2007
Location: Vinnitsa, Ukraine

PostPosted: Tue Dec 01, 2009 2:06 pm    Post subject: Reply with quote

Quote:
А нельзя ли, для таких случаев, добавить еще одну кнопку с предложением кодировки в которой символы не будут утеряны(кодировку предлагать исходя из популярности кодировки), а также возможность пользователю выбрать кодировку самостоятельно из того же окна.
Я лично всё делаю в UTF-8 где только ьего понимает софт, либо в UTF16 LE/BE.
Люди давно уже забыли что такое не-Юникод кодировка, а потому не придумывают больше супер-дупер-эврестических алгоритмов поиск совместимых не-Юникодных кодировок. Возьметесь?
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Razmus



Joined: 13 Mar 2008
Posts: 27

PostPosted: Tue Dec 01, 2009 8:58 pm    Post subject: Reply with quote

FeyFre wrote:
Quote:
А нельзя ли, для таких случаев, добавить еще одну кнопку с предложением кодировки в которой символы не будут утеряны(кодировку предлагать исходя из популярности кодировки), а также возможность пользователю выбрать кодировку самостоятельно из того же окна.
Я лично всё делаю в UTF-8 где только ьего понимает софт, либо в UTF16 LE/BE.
Люди давно уже забыли что такое не-Юникод кодировка, а потому не придумывают больше супер-дупер-эврестических алгоритмов поиск совместимых не-Юникодных кодировок. Возьметесь?


А кто сказал, что я против юникода?)
Пусть предлагает сохранять в юникод)
Back to top
View user's profile Send private message Send e-mail
beerbitch



Joined: 30 Nov 2009
Posts: 5

PostPosted: Fri Dec 04, 2009 7:26 pm    Post subject: Какая кодировка лучше всех? Reply with quote

А какая-же кодировка тогда лучше всех, чтобы читалась на мобильнике и на компе без проблем?
UTF-8?
Back to top
View user's profile Send private message
DV



Joined: 16 Nov 2006
Posts: 807
Location: Kyiv, Ukraine

PostPosted: Sat Dec 05, 2009 3:53 pm    Post subject: Re: Какая кодировка лучше всех? Reply with quote

beerbitch wrote:
UTF-8?

Линуксы больше любят UTF-8, а Виндовсы - UTF-16 LE (она же UCS-2 LE).
Собственно, WideChar в Виндовс - это и есть UTF-16 LE.
Back to top
View user's profile Send private message
beerbitch



Joined: 30 Nov 2009
Posts: 5

PostPosted: Sat Dec 05, 2009 6:59 pm    Post subject: Re: Какая кодировка лучше всех? Reply with quote

DV wrote:
beerbitch wrote:
UTF-8?

Линуксы больше любят UTF-8, а Виндовсы - UTF-16 LE (она же UCS-2 LE).
Собственно, WideChar в Виндовс - это и есть UTF-16 LE.

Спасибо, кое-что разъяснили Smile
Может ещё сможете ответить на 2 вопроса:
1) Что такое "BOM"? Галочку можно ставить и не ставить при сохранении на это.
2) Юникод - это какая кодировка, имею ввиду ASCII или UTF-9 или ещё что?
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2007
Location: Vinnitsa, Ukraine

PostPosted: Sat Dec 05, 2009 11:59 pm    Post subject: Reply with quote

Quote:
Линуксы больше любят UTF-8
Поправчока: линуксы только недавно начали любить UTF-8, у потому траблы с постройкой нового ядра на старом дистрибутиве - очень частое явление. У меня Линукс без проблем дружит с KOI8-U
Виндовс - гадость, никак не может определится в какой кодировке записаны имена на NTFS. Привык уже читать хекс последовательности Smile
Quote:
Собственно, WideChar в Виндовс - это и есть UTF-16 LE.
Мелкомягкие вас обманули. WideChar это UCS-2 - UTF16 без одного множества суррогатных кодов. Они иначе не смогут. Иначе sizeof(wchar_t) != 2 и не постоянна, и потому накрывается туева хуча API.

Quote:
1) Что такое "BOM"? Галочку можно ставить и не ставить при сохранении на это.
BOM - Byte Order Mark - метка порядка байт - всегда первые три байта любого Юникод текста(кроме случаев когда их специально вырезают). Обрабатывается текстовыми процессорами как источник следующий информации(метаданные):
1. Порядок следования байт многобайтовго числа (LE/BE), который использовался при сохранении текста(символы Юникод кодировок - суть 1, 2, 4-байтовые числа).
2. Код Юникод кодировки.
Если редактор поддерживает Юникод, он правильно отобразит текст, в который БОМ не входит. Иначе он интерпретирует эти байты как символы и отобразит их тоже.

Сохранять рекомендуется всегда с БОМ.
Исключения могут быть такие:
1. Текстовый файл предназначен для какой-то программы или устройства которое заведомо понимает только одну из Юникод кодировок и требует отсутствия БОМ, или же не поддерживает Юникод кодировки вообще, но необходимо Юникод последовательности вставить в текст, например PHP интерпретатор пока поддерживает только однобайтовые кодировки исходного кода скрипта, но сам язык спокойно переваривает UTF-8, например в строковых литералах. В таких случаях скрипты пишут в UTF-8 без БОМ.
2. Метаданные о тексте доставляются к интерпретатору текста отдельным способом. Ну чтобы поняли:
Подается запрос к текстовому файлу на сервере. Серверу сказали что все текстовые файлы лежат в конкретной Юникод кодировке. Он добросовестно выдает в ответе в заголвках указанную кодировку, и пересылает текст из запрошенного файла. Обозревателю уже не нужно смотреть на БОМ для корректного отображения текста, он уже проанализировал заголовок которые выдал сервер и определил всё что нужно. И потому если придет БОМ вместе с текстом - он подумает что это тоже текст и отобразит его, что будет казаться "мусором" для человека.
Quote:
2) Юникод - это какая кодировка, имею ввиду ASCII или UTF-9 или ещё что?
Юникод это Юникод Laughing
Юникод - это множество кодировок для унифицированной передачи и сохранения символов разных языков. ANSI - кодировки: количество допустимых символов не превышает 256 - один байт, а так как символов в разных языках много(польский, рус/укр, английский, немецкий, японский, китайский, корейский и т.д) и они не влазят в ограничение 256, вот их и разделили на разный ANSI-кодировки, которые в одном тексте не могут находится.
В Юникод - кодировка символе не ограничена одним байтом, и потому в одном тексте могут быть фрагменты на разных языках, и все символы будут отображаться корректно. Самые популярные это:
UTF-8, UTF-16, UTF-32, UCS-2. Остальные можете посмотреть http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings
Кодировки UTF-9 и UTF-18 - традиционный шуточный первоапрельский RFC-стандарт.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
beerbitch



Joined: 30 Nov 2009
Posts: 5

PostPosted: Mon Dec 07, 2009 3:26 pm    Post subject: Reply with quote

FeyFre
Спасибо Большущее! Теперь Разобрался Полностью Smile
Back to top
View user's profile Send private message
Riko



Joined: 28 Mar 2007
Posts: 10

PostPosted: Tue Dec 08, 2009 1:12 pm    Post subject: Reply with quote

Кстати, а какой в этом смысл?

Зачем преднамеренно портить файл?
Разве нельзя, сохраняя из одного формата ASCII в другой, оставлять в файле тот же набор байтов?
Клиенту не всё равно, откроется к него знаки вопроса, или спецсимволы другой кодировки?
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2584
Location: Киев, Русь

PostPosted: Sun Dec 20, 2009 11:23 am    Post subject: Reply with quote

"Кодировочные" монстры, помогите разобраться!
Извлекаю доки в виде XML из своей системы (у меня они в utf-8 - это общеизвестно, да и stream при извлечении говорит, что charset="Unicode").
Запихую эти данные в Oracle, они (русские буквы) отображаются правильно, но програмеры, которые делают разбор с помощью MS XML Parser'а, говорят, что кодировка у меня windows-1251.
Всё работает, но на других системах с другими настройками может быть печально.. потому выгрузил stream на диск, открыл в AkelPad'е, а он внизу отображает: Unix | 1251 (ANSI - кириллица).
Так в каком формате всё-таки мои данные? Rolling Eyes Я в стопоре... Laughing
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5174

PostPosted: Mon Dec 21, 2009 12:51 pm    Post subject: Reply with quote

VladSh
Если символы в AkelPad'е отображаются правильно (и русские, и латинские), то кодировки именно та, что показывает AkelPad в строке состояния.
Back to top
View user's profile Send private message Send e-mail
VladSh



Joined: 29 Nov 2006
Posts: 2584
Location: Киев, Русь

PostPosted: Mon Dec 21, 2009 3:00 pm    Post subject: Reply with quote

Instructor, да, всё корректно отображается.
А что тогда означает надпись Unix чуть левее?
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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 vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group