|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
|||||||||||
Конвертер символов в юникод04.11.2018, 13:21. Показов 5229. Ответов 21
Метки нет (Все метки)
Здравствуйте. Помогите создать программу, которая считывает файл побайтно и если значение байта >=128 совершает замену символа (из CP437 в UTF-8).
У меня есть некоторые "черновики": Считывание побайтно:
Decimal в UTF-8:
0
|
|||||||||||
| 04.11.2018, 13:21 | |
|
Ответы с готовыми решениями:
21
Использование Юникод символов Конвертер TTF-шрифтов в BMP с координатами символов Конвертер из CSV файла в таблицу из ASCII символов |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 04.11.2018, 13:42 | |
|
Файл в какой кодировке?
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,911
|
|
| 04.11.2018, 18:29 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
|
| 04.11.2018, 18:49 [ТС] | |
|
nmcf, CP437.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 04.11.2018, 20:27 | |
|
В WinAPI есть функции для перекодирования.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
||||||
| 04.11.2018, 21:32 [ТС] | ||||||
|
nmcf, MultiByteToWideChar? Не знаю насколько эта функция эффективна. Так как была у меня такая же программа на С, и она как бы меняла декодирование из нормального ANSI в UTF-8, но в самом тексте символы так и не поменялись.
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 04.11.2018, 23:50 | |
|
Считывать и перекодировать надо строками, а не по одному символу. И если, как ты говоришь, там 437, то почему указано CP_ACP?
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,911
|
|||||||||||
| 05.11.2018, 01:23 | |||||||||||
|
Вот так вроде работает (проверку на ошибки не делал, пусть ТС сам развлекается). Ну и вместо CP437 взял KOI8-R, как более подходящий для проверки:
А вот способа запустить iconv на windows я не нашел. Перепробовал несколько реализаций, но, похоже, есть какие-то тонкости по размещению библиотек
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
||||||
| 05.11.2018, 10:05 [ТС] | ||||||
|
COKPOWEHEU, спасибо.
nmcf, переписал программу. Считывает весь файл в буффер. CP_ACP это кодировка ANSI. С СP437 как то не получается - пустой файл (output.txt) создается. А результат c CP_ACP такой же как и упоминал - меняется кодировка в настройках notepad а сами символы не меняются. Возможно стоит их в консоль выводить, а не сохранить в файл? Или есть какие нибудь другие способы как это "пофиксить"?
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 05.11.2018, 12:05 | |
|
Что значит "меняется кодировка в настройках notepad а сами символы не меняются"? Символы и не должны меняться.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
||
| 05.11.2018, 12:34 [ТС] | ||
|
nmcf, если символы не должны меняться, тогда какая суть конвертирования?
0
|
||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 05.11.2018, 13:58 | |
|
Ну ты перекодируешь в другой формат. Отображение от этого и не должно меняться.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
|
| 05.11.2018, 14:07 [ТС] | |
|
nmcf, а как именно поменять отображение?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 05.11.2018, 14:18 | |
|
Что ты хочешь получить? Пример.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
|
| 05.11.2018, 15:41 [ТС] | |
|
nmcf, программа должна найти в тексте "неправильные символы" и исправить их (в примере А с умляутом соответствует знак "-" , а буква похожая на "ž" соответствует знак квадратa).
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 05.11.2018, 17:07 | |
|
Откуда этот файл и почему он отображается нормально справа?
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
||||||
| 05.11.2018, 17:46 [ТС] | ||||||
|
Файл дан вместе с задачей. А что касается к отображению - текст просто печатается в консоле и наверное, как то сама консоль его декодирует:
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 05.11.2018, 18:08 | |
|
И цветом само выделяется? Загрузи сюда этот файл.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 45
|
|
| 05.11.2018, 18:48 [ТС] | |
|
Нет, цветом выделил я. Файл слишком большой, могу как-нибудь только часть вложить.
Вот одна часть текстового файла input.txt: https://pastebin.com/P0sH9tX5
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 05.11.2018, 19:12 | |
|
Так не пойдёт. При копировании, могут быть искажения.
Судя по этому куску там по два байта на эти неправильные символы. Может, это уже и есть utf-8? Ты дамп можешь показать, чтобы эти символы были видны вместе с их кодами?
0
|
|
| 05.11.2018, 19:12 | |
|
Помогаю со студенческими работами здесь
20
Юникод Юникод в XE Юникод Юникод в Си++ Юникод в с++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|