Как строку преобразовать в русские символы, кт. в бд сохранены как ...\u043c\u0430\u0442\u0440\u0438 ...

122 views
Skip to first unread message

Ivan Tsal-Tsalko

unread,
Sep 25, 2015, 9:58:36 AM9/25/15
to Golang Russian

После выборки и вывода:


log.Println(str)

OUT: \u0435\u043e...


Alex Lurye

unread,
Sep 25, 2015, 10:08:46 AM9/25/15
to Golang Russian
А кто пишет эту строку в базу данных? Это похоже на кодировку, которая используется в программах на JavaScript. Если вам нужно отпарсить коды только в этом формате, это одна задача. Если надо обрабатывать всевозможные способы записи символов JavaScript, то всё сложнее.

--
Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Ivan Tsal-Tsalko

unread,
Sep 26, 2015, 6:35:07 PM9/26/15
to Golang Russian
Исторически так сложилось, что клиент преобразует русские символы именно в такой формат и сохраняет в бд. На клиентской стороне данные "парсятся" через https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.unescape%28v=vs.110%29.aspx.
Возможно нужно парсить строку на сочетание \u(0-9A-Fa-f){4} с последующем поиском в какой-нибудь таблице кодов (не знаю есть ли такая таблица :)).
Есть ли другое вариант решения задачи?
Заранее спасибо!

Silent

unread,
Sep 27, 2015, 1:43:55 AM9/27/15
to Golang Russian
Конечно есть другой вариант, причем стандартными средствами. https://play.golang.org/p/rp3YbeH_95

Ivan Tsal-Tsalko

unread,
Sep 28, 2015, 4:11:42 AM9/28/15
to Golang Russian
Спасибо, вы мне очень помогли!
Reply all
Reply to author
Forward
0 new messages