Android как изменить кодировку файла txt
Перейти к содержимому

Android как изменить кодировку файла txt

  • автор:

Android чтение кириллицы из текстового файла(UTF-8)

Пытаюсь прочитать текст из TXT файла. Вот код, который производит чтение:

private String readFromTXT(String filePath) < StringBuilder textSB = new StringBuilder(); try < BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8")); String line; while ((line = br.readLine()) != null) < textSB.append(line); textSB.append('\n'); >br.close(); > catch (IOException e) < Toast.makeText(this, "Could not read this file", Toast.LENGTH_SHORT).show(); >return textSB.toString(); > 

Но на экран выводятся � вместо кириллицы. Латиница отображается правильно. Когда я вывожу в TextView обычную строку кириллицы (которая не читается из файла, а просто объявляется в коде), то символы отображаются верно. В чём может быть проблема?

Отслеживать

задан 27 мар 2017 в 17:51

Dmitry Simakov Dmitry Simakov

121 3 3 бронзовых знака

Возможно .txt сохранён не в utf-8

27 мар 2017 в 21:09

@zTrap Спасибо, действительно, проблема оказалась в этом. Странно то, что я выбираю в Notepad++ кодировку UTF-8 сохраняю, снова открываю этот файл, а Notepad уже показывает другую кодировку. Попробовал создать файл на самом android, через офис, моя программа его нормально читает, но файлы, которые я с винды перекидываю нет.

28 мар 2017 в 18:42

Для Notpad++ необходимо сохранять в формате utf-8 без BOM

Выбор кодировки текста при открытии и сохранении файлов

Как правило, при совместной работе с текстовыми файлами нет необходимости вникать в технические аспекты хранения текста. Однако если необходимо поделиться файлом с человеком, который работает с текстами на других языках, скачать текстовый файл из Интернета или открыть его на компьютере с другой операционной системой, может потребоваться задать кодировку при его открытии или сохранении.

Когда вы открываете текстовый файл в Microsoft Word или другой программе (например, на компьютере, язык операционной системы на котором отличается от того, на котором написан текст в файле), кодировка помогает программе определить, в каком виде нужно вывести текст на экран, чтобы его можно было прочитать.

В этой статье

  • Общие сведения о кодировке текста
  • Выбор кодировки при открытии файла
  • Выбор кодировки при сохранении файла
  • Поиск кодировок, доступных в Word

Общие сведения о кодировке текста

То, что отображается на экране как текст, фактически хранится в текстовом файле в виде числового значения. Компьютер преобразует числические значения в видимые символы. Для этого используется кодикон.

Кодировка — это схема нумерации, согласно которой каждому текстовому символу в наборе соответствует определенное числовое значение. Кодировка может содержать буквы, цифры и другие символы. В различных языках часто используются разные наборы символов, поэтому многие из существующих кодировок предназначены для отображения наборов символов соответствующих языков.

Различные кодировки для разных алфавитов

Сведения о кодировке, сохраняемые с текстовым файлом, используются компьютером для вывода текста на экран. Например, в кодировке «Кириллица (Windows)» знаку «Й» соответствует числовое значение 201. Когда вы открываете файл, содержащий этот знак, на компьютере, на котором используется кодировка «Кириллица (Windows)», компьютер считывает число 201 и выводит на экран знак «Й».

Однако если тот же файл открыть на компьютере, на котором по умолчанию используется другая кодировка, на экран будет выведен знак, соответствующий числу 201 в этой кодировке. Например, если на компьютере используется кодировка «Западноевропейская (Windows)», знак «Й» из исходного текстового файла на основе кириллицы будет отображен как «É», поскольку именно этому знаку соответствует число 201 в данной кодировке.

Юникод: единая кодировка для разных алфавитов

Чтобы избежать проблем с кодированием и декодированием текстовых файлов, можно сохранять их в Юникоде. В состав этой кодировки входит большинство знаков из всех языков, которые обычно используются на современных компьютерах.

Так как Word работает на базе Юникода, все файлы в нем автоматически сохраняются в этой кодировке. Файлы в Юникоде можно открывать на любом компьютере с операционной системой на английском языке независимо от языка текста. Кроме того, на таком компьютере можно сохранять в Юникоде файлы, содержащие знаки, которых нет в западноевропейских алфавитах (например, греческие, кириллические, арабские или японские).

Выбор кодировки при открытии файла

Если в открытом файле текст искажен или выводится в виде вопросительных знаков либо квадратиков, возможно, Word неправильно определил кодировку. Вы можете указать кодировку, которую следует использовать для отображения (декодирования) текста.

  1. Откройте вкладку Файл.
  2. Нажмите кнопку Параметры.
  3. Нажмите кнопку Дополнительно.
  4. Перейдите к разделу Общие и установите флажокПодтверждать преобразование формата файла при открытии.

Примечание: Если установлен этот флажок, Word отображает диалоговое окно Преобразование файла при каждом открытии файла в формате, отличном от формата Word (то есть файла, который не имеет расширения DOC, DOT, DOCX, DOCM, DOTX или DOTM). Если вы часто работаете с такими файлами, но вам обычно не требуется выбирать кодировку, не забудьте отключить этот параметр, чтобы это диалоговое окно не выводилось.

Если почти весь текст выглядит одинаково (например, в виде квадратов или точек), возможно, на компьютере не установлен нужный шрифт. В таком случае можно установить дополнительные шрифты.

Чтобы установить дополнительные шрифты, сделайте следующее:

  1. Нажмите кнопку Пуск и выберите пункт Панель управления.
  2. Выполните одно из указанных ниже действий. В Windows 7
    1. На панели управления выберите раздел Удаление программы.
    2. В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

    В Windows Vista

    1. На панели управления выберите раздел Удаление программы.
    2. В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

    В Windows XP

    1. На панели управления щелкните элемент Установка и удаление программ.
    2. В списке Установленные программы щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

    Совет: При открытии текстового файла в той или иной кодировке в Word используются шрифты, определенные в диалоговом окне Параметры веб-документа. (Чтобы вызвать диалоговое окно Параметры веб-документа, нажмите кнопку Microsoft Office, затем щелкните Параметры Word и выберите категорию Дополнительно. В разделе Общие нажмите кнопку Параметры веб-документа.) С помощью параметров на вкладке Шрифты диалогового окна Параметры веб-документа можно настроить шрифт для каждой кодировки.

    Выбор кодировки при сохранении файла

    Если не выбрать кодировку при сохранении файла, будет использоваться Юникод. Как правило, рекомендуется применять Юникод, так как он поддерживает большинство символов большинства языков.

    Если документ планируется открывать в программе, которая не поддерживает Юникод, вы можете выбрать нужную кодировку. Например, в операционной системе на английском языке можно создать документ на китайском (традиционное письмо) с использованием Юникода. Однако если такой документ будет открываться в программе, которая поддерживает китайский язык, но не поддерживает Юникод, файл можно сохранить в кодировке «Китайская традиционная (Big5)». В результате текст будет отображаться правильно при открытии документа в программе, поддерживающей китайский язык (традиционное письмо).

    Примечание: Так как Юникод — это наиболее полный стандарт, при сохранении текста в других кодировках некоторые знаки могут не отображаться. Предположим, например, что документ в Юникоде содержит текст на иврите и языке с кириллицей. Если сохранить файл в кодировке «Кириллица (Windows)», текст на иврите не отобразится, а если сохранить его в кодировке «Иврит (Windows)», то не будет отображаться кириллический текст.

    Если выбрать стандарт кодировки, который не поддерживает некоторые символы в файле, Word пометит их красным. Вы можете просмотреть текст в выбранной кодировке перед сохранением файла.

    При сохранении файла в виде кодированного текста из него удаляется текст, для которого выбран шрифт Symbol, а также коды полей.

    Выбор кодировки

    1. Откройте вкладку Файл.
    2. Выберите пункт Сохранить как. Чтобы сохранить файл в другой папке, найдите и откройте ее.
    3. В поле Имя файла введите имя нового файла.
    4. В поле Тип файла выберите Обычный текст.
    5. Нажмите кнопку Сохранить.
    6. Если появится диалоговое окно Microsoft Office Word — проверка совместимости, нажмите кнопку Продолжить.
    7. В диалоговом окне Преобразование файла выберите подходящую кодировку.
    8. Чтобы использовать стандартную кодировку, выберите параметр Windows (по умолчанию).
    9. Чтобы использовать кодировку MS-DOS, выберите параметр MS-DOS.
    10. Чтобы задать другую кодировку, установите переключатель Другая и выберите нужный пункт в списке. В области Образец можно просмотреть текст и проверить, правильно ли он отображается в выбранной кодировке.

    Примечание: Чтобы увеличить область отображения документа, можно изменить размер диалогового окна Преобразование файла.

    Поиск кодировок, доступных в Word

    Word распознает несколько кодировок и поддерживает кодировки, которые входят в состав системного программного обеспечения.

    Ниже приведен список письменностей и связанных с ними кодировок (кодовых страниц).

    Система письменности

    Используемый шрифт

    Юникод (UCS-2 с прямым и обратным порядком байтов, UTF-8, UTF-7)

    Стандартный шрифт для стиля «Обычный» локализованной версии Word

    Windows 1256, ASMO 708

    Китайская (упрощенное письмо)

    GB2312, GBK, EUC-CN, ISO-2022-CN, HZ

    Китайская (традиционное письмо)

    BIG5, EUC-TW, ISO-2022-TW

    Windows 1251, KOI8-R, KOI8-RU, ISO8859-5, DOS 866

    Английская, западноевропейская и другие, основанные на латинице

    Windows 1250, 1252-1254, 1257, ISO8859-x

    Изменить кодировку файла TXT?

    Из wmic создается текстовый файлик, с кодировкой Юникод (utf-16).
    При чтении в веб браузере (utf-8) непонятные символы, если же txt файл через «Сохранит как..» выбрать кодировку utf-8, то все работает исправно, но как можно автоматизировать этот процесс через python или php?

    • Вопрос задан более двух лет назад
    • 1113 просмотров

    7 комментариев

    Простой 7 комментариев

    FanatPHP

    То что в программе Виндоуз называется «Unicode», в нормальных программах обозначается как UTF-16LE
    а дальше iconv или mb_convert_encoding()

    Begginer_serg @Begginer_serg Автор вопроса

    61bf8d235e576441768552.png

    FanatPHP,

    FanatPHP

    читаем описание функции ещё раз
    Begginer_serg @Begginer_serg Автор вопроса

    'wmic /node:' + ip +' /user:Администратор /output:D:\\temp\\file.txt . 

    sergey-kuznetsov

    Сергей Кузнецов @sergey-kuznetsov
    Begginer_serg, а если перед командой добавить переключение кодировки консоли?
    chcp 65001

    hint000

    Begginer_serg, поменяйте местами аргументы в mb_convert_encoding.
    Ну нельзя быть настолько беспомощным, гуглится же за секунды по названию функции.

    FanatPHP

    wisgest, он там уже есть
    Решения вопроса 0
    Ответы на вопрос 2

    Adamos

    Если задача только в том, чтобы браузер отображал верно файлы txt, наляпанные вами в неизвестной виндовской кодировке, то ее решение — не в РНР, а в настройке того сервера, на котором крутится этот сайт.
    Чтобы он для *.txt подставлял заголовок

    Content-Type: text/plain; charset=

    Ответ написан более двух лет назад
    Нравится 1 11 комментариев
    Begginer_serg @Begginer_serg Автор вопроса
    Куда следует добавить данную строчку?

    Adamos

    Begginer_serg, повторяю медленно и печально: в настройках сервера должна быть выделена обработка файлов с расширением .txt, и для них должен добавляться такой заголовок.
    Если, конечно, я верно понял, что эти файлы генерируются для того, чтобы они открывались по ссылке.
    Если же вы открываете их браузером сами просто потому, что не знаете, чем еще посмотреть — можете не обращать внимания.

    FanatPHP

    Adamos, это слишком сложно для его неокрепшего мозга 🙂
    не говоря уже о том что как бы совсем не обязательно, что ВСЕ txt файлы на сервере лежат в кривой кодировке

    Adamos

    FanatPHP, на веб-сервере вообще редко встречаются голые txt-файлы, так что конкретно эту настройку можно, думаю, заточить под этот конкретный юзкейс.

    Begginer_serg @Begginer_serg Автор вопроса

    FanatPHP, а вы очень добры(:
    Нет чтобы подсказать, если уж Вы специалист в этой области, но лучше выбрать вариант с хамством)

    FanatPHP

    Я УЖЕ ПОДСКАЗАЛ!
    надо не ныть 2 часа по комментариям, а СДЕЛАТЬ что сказано
    и уж тем более не разевать свой нежный ротик за то что в него не положили кашку, не пожевали, не проглотили, и еще потом попку не вытерли беспомощной дитятке!

    Begginer_serg @Begginer_serg Автор вопроса

    FanatPHP, печально наблюдать за вашими комментариями, но мне сейчас совсем не до спора что, как, и зачем вы так общаетесь, есть вопрос — обратился за помощью, то что скинули вы — и сам прекрасно в гугле нашел.
    Дополнительно информирую: $text = mb_detect_encoding($text); выдает UTF-8ASCII
    Вопрос всё еще актуален.

    FanatPHP

    печально наблюдать за клоуном, который, получив ответ на свой вопрос, не осилил написать 1 (одну ) функцию РНР, причем ни с первого раза, ни после того как ему было указано на ошибку.
    или скорее не печально, а смешно 🙂
    особенно эти наскоки. давайте, расскажите, в чем ещё я перед вами виноват. я внимательно выслушаю 🙂

    Begginer_serg @Begginer_serg Автор вопроса

    FanatPHP, функцию написал — результата нет, прислал скриншот, а в ответ — читайте функцию, не проще закончить это всё и указать на ошибку явно?

    FanatPHP

    сорян, я только сейчас разглядел, что никнейм «попрошайка серг», а не «начинающий серг», как я подумал сначала
    если бы сразу увидел, то вообще бы писать не стал

    Android как изменить кодировку файла txt

    Ну, в целом где-то даже интересно, особенно куча отсылок к реальным событиям.
    Рояли — ну а куда ж без них?

    Но запятые не понимают, почему они не на своем месте, буквы тоже. И если «формировать реку» вместо «форсировать» или -тся/-ться как-то можно объяснить промахиванием пальцев по клавишам, то «подвергнут абстракции» вместо «обструкции» просто убило.

    Словом, «за изобретение пять, за экзамен — два!» (с) «Операция «Ы»»

    Рейтинг: 0 ( 0 за, 0 против).

    Слишком много повторяющихся сюжетов: встреча с девушкой, эротика, смерть девушки, переживания ГГ. Если в первом это была хоть какая то новизна, то к середине второй книги уже достало конкретно, при этом характер ГГ становится всё хуже и кажется, что писателя кроме эротики по жизни вообще ничего не интересует. С логикой у автора временами тоже глюки. Если у всех авторов маги жизни тратят магические силы для вливания в чужие, то у данного

    автора больные медики страдают от переполнения сил аж до своей гибели и не могут их слить. Глупость полная. Если первый том ещё было интересно считать, то к середине второго желание отбило даже заглянуть в конец. Тоска зелёная.

    Рейтинг: +1 ( 1 за, 0 против).

    Книга интересная, местами затянуто, но общее впечатление это не портит.

    Рейтинг: +1 ( 1 за, 0 против).

    Отличный сериал ! На первый взгляд вроде ничего особенного,просто повествование о паре лет жизни ГГ.Но это только на первый взгляд.Тут нет никаких заумных наворотов,просто жизнь обычного. хорошо, пусть талантливого. ладно,очень талантливого парня.Я влип в этот сериал на все новогодние каникулы.Секрет прост-ГГ понятен как парень с твоего двора,ошибки. они тоже понятны,успехи обоснованы и естествены.Повествование неторопливое и

    размеренное,но на НГ самое то !Мне понравилось,попробуйте вы.

    Рейтинг: +2 ( 2 за, 0 против).

    Прочитала только 10% текста; герой качается, интриги никакой.Бросила.

    Рейтинг: +2 ( 2 за, 0 против).

    Читаю первый том и пока на мой вкус впечатление — отличное.

    Рейтинг: +1 ( 1 за, 0 против).

    SubMarinka в 21:04 / 02-08-2021
    «Эта книга вряд ли будет переведена и издана в России официально…»

    И правильно. И так уже дерьма всяких этих белтонов и иже с ними напереведено.

    Рейтинг: +4 ( 4 за, 0 против).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *