Люди, помогите решить проблему.
чтобы корректно работать с казахскими буквами надо использовать UTF8.. чтобы и файл был UTF8 и читать его так же..
В свое время (98-й, XP) была такая хреновина как 1251k.Люди, помогите решить проблему.
Есть текстовые файлы.
Notepad++ говорит, что у них кодировка ANSI.
В программке (на c#) я считываю содержимое построчно
string[] lines = System.IO.File.ReadAllLines(File,Encoding.GetEncoding(1251));
Но при дальнейшей работе с этой строкой казахские символы отображаются некорректно.
Не важно записываю ли я в базу или вывожу в MessageBox.
Как указать кодировку 1251 со специфическими казахскими буквами?
Сообщение отредактировал .ctor: 15.08.2014, 17:00:10
Не обязатально. Винда с utf8, utf16 и т.п. не работает. работает она только с юникодом. Все остальное конвертируется в юникод при чтении и выводе.чтобы корректно работать с казахскими буквами надо использовать UTF8.. чтобы и файл был UTF8 и читать его так же..
Не обязатально. Винда с utf8, utf16 и т.п. не работает. работает она только с юникодом. Все остальное конвертируется в юникод при чтении и выводе.
вообще не поняла, что вы имеете в виду
поясните, плиз?
юникод - это стандарт
utf-8 и utf-16(а также другие, менее распространенные) - это кодировки, разработанные по стандарту UNICODE
мало того, я вам больше скажу - имена файлов хранятся в семействе NT именно в utf-16..
вообще не поняла, что вы имеете в виду
поясните, плиз?
юникод - это стандарт
utf-8 и utf-16(а также другие, менее распространенные) - это кодировки, разработанные по стандарту UNICODE
мало того, я вам больше скажу - имена файлов хранятся в семействе NT именно в utf-16..
NTFS stores file names in Unicode. In contrast, the older FAT12, FAT16, and FAT32 file systems use the OEM character set. For more information, see Code Pages.
Сообщение отредактировал .ctor: 15.08.2014, 17:31:54
©wikiВ API Win32, распространённом в современных версиях операционной системы Microsoft Windows, имеется два способа представления текста: в форме традиционных 8-битных кодовых страниц и в виде UTF-16.
В файловых системах NTFS, а также FAT с поддержкой длинных имён, имена файлов записываются в UTF-16LE.
Сообщение отредактировал .ctor: 15.08.2014, 17:35:40
©wiki
ну, и я об этом же..
взято отсюда, MSDN NT может сидеть как на NTFS, так и на Fat32 (не знаю точно про семейство выше XP, XP точно может)
в чем взятое утверждение противоречит тому, что я сказала?
чтобы работать с казахским не обязательно использовать UTF-8, вот что я хотел сказать. Все эти кодировки это только способ преобразования символов для последующего отображения и сравнения между собой.
не обязательно
можно и utf-16, и другие юникод-кодировки, согласна
но на практике, с utf-8 меньше всего проблем ))
про ср1251каз.. теоретически, можно
практически - требует распространения этой кодировки на компьютеры пользователей, неудобно
впрочем, если я что-то тут путаю или недопонимаю, прошу поправить..
There is another way!)в чем взятое утверждение противоречит тому, что я сказала?
У человека есть определенная проблема, и ее надо решить)не обязательно
можно и utf-16, и другие юникод-кодировки, согласна
но на практике, с utf-8 меньше всего проблем ))
Тот самый другой путь. Распространение требовалось на XP, на более новых ОС это уже изобретено до нас.про ср1251каз.. теоретически, можно
практически - требует распространения этой кодировки на компьютеры пользователей, неудобно
впрочем, если я что-то тут путаю или недопонимаю, прошу поправить..
И да, 1251каз (codepage) это не кодировка, а сопоставление символов ANSI (8байт) матрице Unicode символов.
Где часть символов просто ссылается на казахские, а не на спецсимволы, редко используемые.
существует для разных языков, включая русский.
Сообщение отредактировал .ctor: 15.08.2014, 17:58:32
У человека есть определенная проблема, и ее надо решить)
да, надо ))
вопрос еще, сможет ли .NET подтянуть cp1251k? Хотя! Можно же юзать P/Invoke и через WinAPI сделать все..
мало того, у меня на работе до сих пор каз символы хранятся в ANSI, т.к. база не Unicode. Все прекрасно дружит, и занимает мало места)
если оно никуда не ходит и не планирует, то почему бы и нет?
Распространение требовалось на XP, на более новых ОС это уже изобретено до нас.
и хранится в кодировках юникод!
И да, 1251каз это не кодировка, а сопоставление символов ANSI (8байт) матрице Unicode символов.
при всем уважении
cp2151kaz - это разновидность кодировки cp1251..и она к юникоду не имеет никакого отношения
Сообщение отредактировал topcraze: 15.08.2014, 18:12:05
А я чего написал? О_опри всем уважении
cp2151kaz - это разновидность кодировки cp1251..и она к юникоду не имеет никакого отношения
Сообщение отредактировал .ctor: 15.08.2014, 18:27:51
ОМГ, вы говорите очень страшные вещи)) Все вразы проше.
покажите простой путь
на примере кода вопрошающего ))
тут я вообще не понял мысль) что хранится?
казсимволы в старших виндах хранятся в юникоде (utf16)
А я чего написал? О_о
вы написали, что cp1251k - это не кодировка, а сопоставление символов ANSI (8байт) матрице Unicode символов.©
так вот
1) cp1251k - это кодировка
2) она не сопоставляется символам Unicode, а символам национальных таблиц. Если хотите доказать обратное, покажите, плиз, код китайского символа в кодировке cp1251
Можно нескромный вопрос девушке?))) Вы на чем пишете или писали?
c++, с#
пишу
Сообщение отредактировал topcraze: 15.08.2014, 18:42:39
Мне бы файлик посмотреть для примера.покажите простой путь
на примере кода вопрошающего ))
А на диске они в чем хранятся? Вот пользователь говорит что нифига не в юникоде.казсимволы в старших виндах хранятся в юникоде (utf16)
ок. Вот у вас диапазон от 0 до 255. В нем нужно хранить эпическое количество символов > 256 (для разных языков и систем DOS, Mac, Win)вы написали, что cp1251k - [/size]
это не кодировка, а сопоставление символов ANSI (8байт) матрице Unicode символов.©[/size]
так вот
1) cp1251k - это кодировка
2) она не сопоставляется символам Unicode, а символам национальных таблиц. Если хотите доказать обратное, покажите, плиз, код китайского символа в кодировке cp1251
Низкий поклон) развелось адинэсников)c++, с#
пишу
Сообщение отредактировал .ctor: 15.08.2014, 18:54:42
Мне бы файлик посмотреть для примера.
подождем, может вопрошающий появится и покажет ))
А на диске они в чем хранятся? Вот пользователь говорит что нифига не в юникоде.
Имена файлов на диске - в юникоде.. содержимое файлов в той кодировке, в которой угодно пользователю
Что бы вы сделали?
придумала бы юникод
а если серьезно, то значение 0xFFFF не влезет в байт, как ни крути ))
да и cp1251 - это исключительно кириллическая кодировка, а корейский уже не при чем
в разных кириллицах(например, каз, рус и какая-нидь болгарская(у них есть спецбуквы?)) - в специфичных cp1251 заменяются разные спецсимволы на национальные буквы.. и все, суть идеи совсем не сложна: один язык - одна таблица.. проблемы начинаются тогда, когда хочется все языки впихнуть в одну таблицу и не париться с тем, прочтут ли пользователи в Болгарии нашу казахскую cp1251, не имея ее установленной в системе ))
а еще большие проблемы появляются, когда на сцену выходят китайцы и 8 байт становится мало
Низкий поклон) развелось адинэсников)
спасибо ))
и вам.. судя по подписи
придумала бы юникод
а если серьезно, то значение 0xFFFF не влезет в байт, как ни крути ))
да и cp1251 - это исключительно кириллическая кодировка, а корейский уже не при чем
в разных кириллицах(например, каз, рус и какая-нидь болгарская(у них есть спецбуквы?)) - в специфичных cp1251 заменяются разные спецсимволы на национальные буквы.. и все, суть идеи совсем не сложна: один язык - одна таблица.. проблемы начинаются тогда, когда хочется все языки впихнуть в одну таблицу и не париться с тем, прочтут ли пользователи в Болгарии нашу казахскую cp1251, не имея ее установленной в системе ))
а еще большие проблемы появляются, когда на сцену выходят китайцы и 8 байт становится мало
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0
Размещение рекламы на сайте Предложения о сотрудничестве Служба поддержки пользователей
© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.