Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/41: Рейтинг темы: голосов - 41, средняя оценка - 4.56
 Аватар для gegart
0 / 0 / 0
Регистрация: 28.07.2013
Сообщений: 30

Кодировкой (1251 и UTF-8) как перекодировать или что с ней сделать

26.11.2013, 17:21. Показов 8276. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу програму на 6 Builder C++ , вытягивает HTML текст с сайта. С одним сайтом все в порядке, когда дело касается другого сайта, текст (кирилицу) считывает кракозяброй если не ошибаюсь Вин 1251 и с этим текстом не возможно работать в 6 Builder C++ . Вот пример текста

У каждого из нас скопились десятки ненужных и сломанных гаджетов.
в Nopade меняю кодировку на UTF-8 все в порядке. Если кто может подскажите как победить кодировку. У кого есть какая-нибудь функция для перекодировки или где ее можно взять, мой RESPECT....
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2013, 17:21
Ответы с готовыми решениями:

UTF-16 -> cp-1251(windows-1251)
У меня есть кириллическая строка UTF-16, которая выглядит как Хотелось бы конвертнуть её в cp-1251, чтобы она была читаема. Сколько...

Как перекодировать данные из windows-1251 в UTF-8?
Как перекодировать данные из windows-1251 в UTF-8? Заранее спасибо за совет!

Как сделать кодировкой проекта Windows-1251
по умолчанию при создании проекта модуль главной формы находится в кодировке UTF8 как сделать чтобы кодировка была Windows-1251 ...

7
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
26.11.2013, 17:44
А вот эта тема (Скачивание текста с сайта) не помогла?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.11.2013, 18:12
Лучший ответ Сообщение было отмечено как решение

Решение

nick42, TEncoding::UTF8 нет в BCB6
gegart, примерно можно так определить UTF8 и перевести текст в 1251
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
static std::string xcode(LPCSTR src, UINT srcCodePage, UINT dstCodePage)
{
    int wsize = MultiByteToWideChar(srcCodePage, 0, src, -1, 0, 0);
    LPWSTR wbuf = (LPWSTR)new char[wsize * sizeof(WCHAR)];
    MultiByteToWideChar(srcCodePage, 0, src, -1, wbuf, wsize);
    int size = WideCharToMultiByte(dstCodePage, 0, wbuf, -1, 0, 0, 0, 0);
    LPSTR buf = (LPSTR)new char[size * sizeof(CHAR)];
    WideCharToMultiByte(dstCodePage, 0, wbuf, -1, buf, size, 0, 0);
    delete [] wbuf;
    std::string res = buf;
    delete [] buf;
    return res;
}
 
TRegExpr *re = new TRegExpr;
    re->InputString = Memo1->Lines->Text;
    re->Expression = ("Р.Р.[РС]");
    re->Compile();
    if(re->Exec(re->InputString))
    {
    if (re->SubExprMatchCount<5)
            {
            std::string s = xcode(Memo1->Lines->Text.c_str(), CP_UTF8, CP_ACP);
            ShowMessage("Текст в UTF8");
            }
        }
    delete re;
3
 Аватар для gegart
0 / 0 / 0
Регистрация: 28.07.2013
Сообщений: 30
26.11.2013, 19:38  [ТС]
Ddv122 Большое спасибо, работает. Вопрос еще, описание этой функции есть. Хотелось разобраться...
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.11.2013, 19:52
gegart, кажись в этом MSDN поможет
0
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
28.11.2013, 11:03
- Ddv122, скажите пожалуйста, где описан класс TRegExpr? Еще не доводилось пользоваться.
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
28.11.2013, 12:20
Лучший ответ Сообщение было отмечено как решение

Решение

Скачиваешь RegExpr.pas отсюда: http://regexpstudio.com/RU/TRegExpr/TRegExpr.html (допустим, http://regexpstudio.com/Downloads/regexpr_RU.zip).
Далее (http://regexpstudio.com/RU/TRegExpr/Help/FAQ.html):
В.
Как использовать TRegExpr в Borland C++ Builder?
Я не могу это сделать, потому что нет заголовочных файлов (.h или .hpp).
О.
· Добавьте RegExpr.pas в Ваш bcb-проект
· Откомпилируйте проект. В результате автоматически будет создан hpp-файл (сообщения об ошибках можно проигнорировать)
· Теперь Вы можете использовать класс TRegExpr в своем проекте. Не забывайте добавлять #include "RegExpr.hpp" в соответствующие cpp-файлы [или заголовочные h-файлы]
· Не забудьте заменить в регулярных выражениях все символы '\' на '\\'.
Изучаешь синтаксис и интерфейс. Пользуешься.
3
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.11.2013, 14:14
Staut, можно регулярку и не использовать
она не универсальна - просто проверяет если ли в тексте последовательность Р Р (P или С) что характерно для UTF 8 и если да - то переводит с UTF8 - в 1251 ...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2013, 14:14
Помогаю со студенческими работами здесь

Библиотека PHP Simple HTML DOM. Непонятки с кодировкой - результат выдается в win-1251, а надо в utf-8.
Сам файл библиотеки в utf-8. Файл скрипта также в utf-8. В настройках библиотеки по умолчанию установлено utf-8. Страница, которую...

Кодировка UTF-8 или Win-1251?
В коде скрипта указано &lt;head&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt; &lt;!--windows-1251--&gt; ...

Как Консольное-приложение в Lazarus сдружить c кодировкой Unicode или Unicode Big Endian или UTF-8
Нужно чтобы Lazarus отображал символы псевдографики желательно все, но в основном вот эти......

IE: текст из base64 в 1251 как перекодировать?
На странице IE получаю от веб-сервиса base64-текст (потому что передается русскоязычный xml). Собственно Вопрос: Как средствами...

Как перекодировать файл из koi8r -> CP 1251
Файл в кодировке koi8r. Пытаюсь работать с ним в tex. Нужно перекодировать в cp1251, иначе текст отображается неправильно. Делаю это в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru