172 похожих чатов

Приветствую, если шанс перекодировать данные в таблице ? Я так полагаю

данные каким-то образом испорчены
(1558, 'mem', 'domod', 1, 1367215466, 'Óäàëåííûå ðåãèñòðàöèè', '46.2.179.220'),
(1557, 'group', 'doedit', 1, 1367118019, 'Îòðåäàêòèðîâàíà ãðóïïà \'×èòàëüíûé çàë\'', '46.2.179.220'),
(1556, 'group', 'doedit', 1, 1367117927, 'Îòðåäàêòèðîâàíà ãðóïïà \'Çàáëîêèðîâàííûå\'', '46.2.179.220'),
(1555, 'group', 'doedit', 1, 1367117868, 'Îòðåäàêòèðîâàíà ãðóïïà \'Ïîëüçîâàòåëè\'', '46.2.179.220'),
(1554, 'group', 'doedit', 1, 1367117787, 'Îòðåäàêòèðîâàíà ãðóïïà \'Ìîäåðàòîðû\'', '46.2.179.220'),
(1553, 'group', 'doedit', 1, 1367117601, 'Îòðåäàêòèðîâàíà ãðóïïà \'Àäìèíèñòðàòîðû\'', '46.2.179.220'),

А если перекодировать как-то через спец программу возможно?

11 ответов

4 просмотра

способ довольно понятный - данные просто сохранили в однобайтовой кодировке (судя по всему в windows-1251), там вот их надо считать чем-нибудь, что понимает 1251 и потом умеет сохранять в вашей кодировке

А почему вы думаете, что это данные в таблицэ испорчены, а не что-нибудь ещё?

И да, перекодировать их, судя по всему, можно... Но, как минимум, надо выяснить -- в каком виде они должны быть. А то так можно очень долго как минимум перекодировать, если способа получить нужное вам, например, не имеется. Опять жэ, когда архитектура будет разъяснена -- вполне вероятно и перекодировать ничего не потребуется.

SuleYman-Aliev Автор вопроса
Ilya Anfimov
А почему вы думаете, что это данные в таблицэ испо...

Ну записи имеют такой вид Îòðåäàêòèðîâàíà, или вы предполагаете что клиент записал так?

SuleYman Aliev
Ну записи имеют такой вид Îòðåäàêòèðîâàíà, или вы...

Откуда Вы это знаете? Может, это вообще результат перекодировки сервер-клиент, и записи вовсе не имеют такого вида? Т.е. где Вы это видите (какой клиент и настройки)? Что показывает \l про эту базу? Ну и т.д.

SuleYman Aliev
Ну записи имеют такой вид Îòðåäàêòèðîâàíà, или вы...

Я предполагаю, что, возможно, клиент так их вам отобразил. Почему-либо. И да, кстати, если что это выглядит как честный windows-1251, который воспринят почему-то как iso8859-1. И потом, очевидно, перекодированный в telegram в utf8. А проверять там много чего -- encoding сервера ( https://www.postgresql.org/docs/current/multibyte.html ), encoding соединения, а потом весь ваш клиентский стэк. Ещё можэт быть у типа столбца свой encoding, но это редкость.

Ilya Anfimov
Я предполагаю, что, возможно, клиент так их вам от...

> Ещё можэт быть у типа столбца свой encoding, но это редкость. Вот этого, к счастью, не может быть. Т.е. @GoDevelopment не придётся это проверять, по крайней мере.

Yaroslav Schekin
> Ещё можэт быть у типа столбца свой encoding, но ...

Я как-то, ещё для 8 делал хранение rfc2047, с выдачей по умолчанию в клиентской кодировке (и функцыями для получения/записи оригинала). То есть по сути дажэ с отдельной кодировкой для каждой записи, не то что для столбца.

Ilya Anfimov
Я как-то, ещё для 8 делал хранение rfc2047, с выда...

Так можно устроить всё, что угодно (хоть разные кодировки для частей каждой записи ;) ), используя bytea и собственные функции. Но возможности задавать encoding отдельно для каждого текстового поля в PostgreSQL просто нет.

Yaroslav Schekin
Так можно устроить всё, что угодно (хоть разные ко...

Ну, учитывая, что автор не показал нам определение таблицы -- там именно всё, что угодно можэт быть. Я жэ предполагаю, что можэт быть всё, что угодно в его неназванном клиентском стэке? Почему бы не предположыть тожэ самое и про хранение, про которое он спрашывал. Хотя это, конечно, редкость, и я тожэ предлагаю этим не заморчаиваться.

Yaroslav Schekin
Так можно устроить всё, что угодно (хоть разные ко...

Кроме того, банальность в том, что там, например, можэт быть bytea, в котором по архитектуре будет лежать строка в cp1251, наплевав на кодировки сервера и клиента. Хотя это тожэ не слишком вероятно.

Похожие вопросы

Обсуждают сегодня

комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Можно вообще написать: Person fName' lName' age'. Тогда действительно имена полей потребуются лишь в строковом виде, чтобы эти fName' и т.д. достать :-) Но разве для этого нуж...
Михаил
8
generic procedure function test<T>(param: T); type case T of longint: NewT = word; longword: NewT = byte; end; var v1: NewT; Как это можно сделать? Чтобы у меня...
notme
21
Делал задачу вот такую https://stepik.org/lesson/4985/step/9?unit=1083 получилось такое https://play.haskell.org/saved/ipKrepqe оно работает, тестов много не писал, но работае...
Fedor
22
преобразовать в число или в один тип?
Alexey Kulakov
11
Hello everyone I am trying to run 4 year old project and I am having this issue anyone can help?
Nitish Garg
10
Всем привет, прошу совета по сложившейся ситуации: Windows приложение подключается к БД MySQL используя Firedac. При работе с версией MySQL 5.7 все отлично, но когда подключаю...
Constantine
6
Всем добрый вечер. Нужна помощь с прикруткой telegram-vapor-bot к проекту Vapor. Удалось после старта приложения отправить тестовое сообщение в бот, вот только сразу после это...
advanc3d
3
program Project1; procedure generic_proc<T>(); begin end; begin generic_proc<Int64>(0); end. Я чет не понял, а как в Delphi сделать такое? процедуру-дженерик... PS: а на...
notme
10
Карта сайта