5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
||||||||||||||||
1 | ||||||||||||||||
Чтение из файла и сохранение в файл28.12.2018, 20:41. Показов 2290. Ответов 11
Метки нет Все метки)
(
Здравствуйте.
Работаю с текстовым файлом формата .txt. Считывается текст из файла, который затем встраивается в аудиофайл. Затем обратными преобразованиями этот текст извлекается из аудиофайла и записывается в файл. Проблема: а) если для считывания использовать кодировку UTF8, а для записи Win-1251, то текст в результирующем текстовом файле совпадает с исходным, НО размеры этих двух .txt файлов отличаются; b) если для считывания использовать кодировку Win-1251, а для записи Win-1251, то текст в результирующем текстовом файле НЕчитаем (набор символов), ЗАТО размер этих двух .txt файлов совпадает; с) если для считывания использовать кодировку UTF8 или Win-1251, а для записи UTF8, то текст в результирующем текстовом файле НЕчитаем (набор символов), ЗАТО размер этих двух .txt файлов совпадает; Спасибо. Чтение:
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
28.12.2018, 20:41 | |
Ответы с готовыми решениями:
11
Сохранение и чтение объекта класса в файл/из файла Сохранение массива в файл и чтение массива из файла Чтение и сохранение из/в файл Чтение и сохранение в файл |
Модератор
![]() |
|
28.12.2018, 20:50 | 2 |
Читать файл надо в той кодировке в которой он записан.
Раз Ваш исходный файл записан в кодировке UTF8, то и читать надо в этой же кодировке - это без вариантов. Записывать надо в той кодировке, в которой будет вестись его визуализация. Если Ваш просмотрищик текста (или редактор) работает в 1251, то записывать надо в этой кодировке. Если он может просматривать в обоих кодировках, то записывайте в любой. Но не у всякого редактора есть автоматическое определение кодировки. Допустим, для стандартного Блокнота, надо выбрать вручную подходящий для кодировки шрифт. Что касается размера, то один и тот же текст в 1251 будет примерно в 2 раза больше чем в UTF8. Это особенность кодировки.
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
|
28.12.2018, 20:54 [ТС] | 3 |
Элд Хасп, оно так и получается, как Вы описали. И к какому решению придти? И не может ли быть такого, что файл записан в кодировке UTF8, но отображается непосредственно в Win-1251?
0
|
Модератор
![]() |
|
28.12.2018, 21:08 | 4 |
Нет. Но редактор (или виевер) может сам автоматически определить какая кодировка и переключиться в неё. Првда сейчас это редкая функция у редакторов. Раньше, из-за многочисленности применения различных кодировок, такая фича встречалась у многих редакторов.
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
|
28.12.2018, 21:12 [ТС] | 5 |
Элд Хасп, тогда не могли бы вы подсказать, как исправить: текст в файле .txt записан в кодировке UTF8. При записи текста в .txt файл в кодировке UTF8, в самом файле получается набор символов, а не набранный текст. Как это исправить?
0
|
Модератор
![]() |
|
28.12.2018, 21:16 | 6 |
Первоначальный файл Вы чем просматриваете?
Добавлено через 1 минуту И у Вас в примере кода указано, что Вы читаете исходный файл в кодировке 1251? Или это неверный пример?
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
|
28.12.2018, 21:18 [ТС] | 7 |
Элд Хасп, пример дан без привязки к кодировке. Просто показать, как происходит непосредственно чтение/запись.
Если с компьютера, то это обычный .txt файл, который просматриваю стандартным Windows редактором текстовых файлов (блокнот). Если в среде программирования, то командой, которая описана в первом посте.
0
|
Модератор
![]() |
||||||
28.12.2018, 21:26 | 8 | |||||
Блокнот по умолчанию просматривает в кодировке 1251. С чего Вы взяли, что у Вас входной формат UTF8 ?
Вы вот этой строкой читаете файл ?
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
||||||
28.12.2018, 21:53 [ТС] | 9 | |||||
Элд Хасп, читаю файл этой командой (в первом посте ошибка):
Добавлено через 14 минут Элд Хасп, и если производить запись в текстовый файл в кодировке Win-1251, то текст будет нечитаем.
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
|
28.12.2018, 22:05 [ТС] | 11 |
Элд Хасп,
test1.txt Win-1251.txt Записанный файл в кодировке UTF8 не загрузился на форум из-за ограничения размера (его размер увеличился почти в два раза и файл нечитаем).
0
|
Модератор
![]() |
||||||
28.12.2018, 22:20 | 12 | |||||
Файл test1.txt у Вас читается командой
string text = File.ReadAllText("test1.txt", Encoding.Default); Это кодировка 1251. Если читать Encoding.UTF8 - то в text неправильные символы.Добавлено через 4 минуты Если явно задавать кодировку, то так
0
|
28.12.2018, 22:20 | |
Помогаю со студенческими работами здесь
12
При сохранение файла word (права доступа на сохранение ограничены) появляется пустой файл Чтение и сохранение файла Чтение из файла и сохранение Сохранение и чтение из файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |