|
Как в 1С преобразовать строку из юникода | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
10.11.14
✎
10:16
|
u0425\u0430\u0442\u043c\u0443\u043b\u043b\u0438\u043d
вот такого вида? |
|||
1
Looser-1c
10.11.14
✎
10:20
|
руками
|
|||
2
Aleksey
10.11.14
✎
10:20
|
я через таблицу соответствий делал
|
|||
3
chudishe
10.11.14
✎
10:21
|
Никак. Используй внешние компоненты или пиши свой собственный костыль.
|
|||
4
Aleksey
10.11.14
✎
10:23
|
Функция СменитьКодировку(СтрокаНаВходе)
СтрокаНаВыходе = СтрокаНаВходе; СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\u0410","А"); СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\u0411","Б"); ... СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\u044e","ю"); СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\u044f","я"); СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\u0401","Ё"); СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\u0451","ё"); СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\r\n","");//Мусор СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\/","/");//экранирующий символ СтрокаНаВыходе = СтрЗаменить(СтрокаНаВыходе,"\u0026","&");// Возврат СтрокаНаВыходе; КонецФункции |
|||
5
Fish
10.11.14
✎
10:25
|
поиском не пробовал пользоваться? Вот первая же ссылка: http://infostart.ru/public/142092/
|
|||
6
chudishe
10.11.14
✎
10:29
|
(5) Фигня там написана. На каждый символ что ли мне создавать соответствие? Я бы строчку распарсил, код символа бы преобразовал в десятичную систему и подал бы на вход функции Символ().
|
|||
7
chudishe
10.11.14
✎
10:47
|
(0) (6) Вот я в общем-то и написал как сделать свой костыль. Дерзай!
|
|||
8
Aleksey
10.11.14
✎
10:54
|
(6) не взлетит
|
|||
9
AnyBody
10.11.14
✎
11:04
|
Функция Перекодировать(Стрим = Неопределено, Стр="", изКодировки="windows-1251", вКодировку="windows-1251") Экспорт
Результат=Стр; Если ((НЕ изКодировки = вКодировку) И (НЕ ПустаяСтрока(Стр))) Тогда Если Стрим = Неопределено Тогда Стрим = Новый COMОбъект("Adodb.Stream"); КонецЕсли; Стрим.Type = 2; Стрим.Mode = 3; Стрим.charset = вКодировку; Стрим.Open(); Стрим.WriteText(Стр); Стрим.Position = 0; Стрим.charset = изКодировки; Результат = Стрим.ReadText(-1); Стрим.Close(); КонецЕсли; Возврат Результат; КонецФункции |
|||
10
mzelensky
10.11.14
✎
11:09
|
(0) я делал по принципу (4) Создал таблицу соответствия с колонками "Символ" и "Код". Потом делаешь универсальную функцию, куда подаешь строку и на выходе получаешь раскодированную строку (принцип простой замены символов).
|
|||
11
Aleksey
10.11.14
✎
11:09
|
(9) Не взлетит u043c - это не кодировка
|
|||
12
бомболюк
10.11.14
✎
11:13
|
(0) а откуда такая строка берется?
|
|||
13
Aleksey
10.11.14
✎
11:14
|
(12) из интернета. Например всякие интернет-магазины любят в таком виде ответ выдавать
|
|||
14
mzelensky
10.11.14
✎
11:14
|
(12) Вбей в строку браузера что-нибудь на русском и увидишь :)
|
|||
15
RomaH
naïve
10.11.14
✎
11:22
|
ага
это ответ а запрос надо в виде: %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82 |
|||
16
chudishe
10.11.14
✎
11:33
|
(8) (13) Правда что ли, а если я сейчас напишу и проверю?
|
|||
17
RomaH
naïve
10.11.14
✎
11:33
|
||||
18
Fish
10.11.14
✎
11:36
|
(15) А для таких строк прекрасно подходят методы:
КодироватьСтроку и РаскодироватьСтроку. |
|||
19
chudishe
10.11.14
✎
12:05
|
(11) Вот, я ради тебя написал и проверил.
Прежде чем трындеть, ты бы сначала поинтересовался что такое escape-последовательность. |
|||
20
Aleksey
10.11.14
✎
12:06
|
(19) расскажи про u0401
|
|||
21
Aleksey
10.11.14
✎
12:07
|
\u0451, А так же спецсимволы, типа \u0026
|
|||
22
chudishe
10.11.14
✎
12:09
|
(20) Что тебе рассказать? Что ты не знаешь, что такое \uXXXX и как им пользоваться? Что 0x0401 в десятичной будет 1025 и что это буква Ё в юникоде?
|
|||
23
Fish
10.11.14
✎
12:14
|
(21) Какой же \u0026 - это спецсимвол? Это обычный символ амперсанд: &
|
|||
24
chudishe
10.11.14
✎
12:16
|
(21) https://www.dropbox.com/s/9n0bm6jyz1zya66/Screenshot%202014-11-10%2013.15.01.png?dl=0
Что еще тебе рассказать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |