powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как перевести символ в unicode и наоборот
15 сообщений из 15, страница 1 из 1
как перевести символ в unicode и наоборот
    #40118545
kolyady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно как перевести а в ->'a' или наоборот 'a' -> а. Возможно нужен словарь то у кого есть готовый перевод вьетнамских символов буду благодарен за любой вариант.
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118546
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyady
собственно как перевести а в ->'a' или наоборот 'a' -> а. Возможно нужен словарь то у кого есть готовый перевод вьетнамских символов буду благодарен за любой вариант.
Какой словарь???
Код: sql
1.
select NCHAR(0x0430), convert(varchar(10), convert(binary(2), UNICODE(N'а')), 2)
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118547
kolyady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

ну тот например который из а переводит в а ?
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118550
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyady,

А откуда у вас приходит такое значение?

На 2016+ можно так:
Код: sql
1.
2.
3.
4.
declare @a varchar(50) = 'а';

select *
from openjson('[' + quotename(@a, '"') + ']') j;
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118555
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
-- Description:	Преобразование строки 
-- "Са..." в nvarchar (utf16)
/*
declare @str nvarchar(max) = 'Самая полезная рассылка Море Трэвел'
select * from [mailchimp].[decodeJsonStr]( @str ) as t
*/
ALTER FUNCTION [MailChimp].[decodeJsonStr]( @str nvarchar(max) )
RETURNS TABLE 
AS
RETURN 
(
with t0 as ( select * from dbo.f_nStrToTableEx_v2(@str, N'\') as x )
   , t  as ( select n = Number
                  , s = case when left(Value, 2) = N'u0' then
                                nchar(cast(convert(binary(2), substring(Value, 2, 4), 2) as int))
                                + substring(Value, 6, 100000)
                            else Value
                        end
               from t0
            )
       select str = ( select s + '' from t order by n asc for xml path(''), type ).value('.', 'nvarchar(max)')
)

-- Description:	Преобразование строки 
--  nvarchar  в "Са..."
/*
declare @str nvarchar(max) = 'Самая полезная рассылка Море Трэвел'
declare @str0 nvarchar(max) = N'{} /\ []Самая полезная рассылка Море Трэвел'
declare @estr nvarchar(max) = (select str from [mailchimp].[encodeJsonStr]( @str0) as t);
select @str0;
select @estr;
select str from [mailchimp].[decodeJsonStr]( @estr) as t
*/
ALTER FUNCTION [MailChimp].[encodeJsonStr]( @str nvarchar(max) )
RETURNS TABLE 
AS
RETURN 
(
with t0 as ( select n, c = substring(@str, n, 1) from dbo.N where n between 1 and len(@str) )
   , t1 as ( select n, c, u = unicode(c) from t0 )
   , x as ( select x = N'{}[]""\' )
   , t  as ( select n, c = case when u > 127 or charindex(c, x) > 0 
                                  then '\u' + lower( convert( nvarchar(4), cast( u as binary(2)), 2 ))
                                else c
                           end
               from t1 cross join x
            )
       select str = ( select c + '' from t order by n asc for xml path(''), type ).value('.', 'nvarchar(max)')
)
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118560
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyady
alexeyvg,

ну тот например который из а переводит в а ?
Я вам запрос написал, который из а переводит в а
Или что вам нужно?
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118561
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

А зачем такие сложности, если есть простые ф-ции NCHAR и UNICODE?
Может, я не понял задачу ТС?
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118575
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
aleks222,

А зачем такие сложности, если есть простые ф-ции NCHAR и UNICODE?
Может, я не понял задачу ТС?

Так оно и переводит. Только сразу всю строку.
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118583
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
alexeyvg
aleks222,

А зачем такие сложности, если есть простые ф-ции NCHAR и UNICODE?
Может, я не понял задачу ТС?

Так оно и переводит. Только сразу всю строку.
А, в этом смысле, что бы текст перевести, в котором встречаются такие коды?
Просто ТС так задал вопрос, как будто у него есть таблица с кодами, и нужно перевести их в символы.
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118620
kolyady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael,

Спасибо , идеальное решение. :)
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118635
kolyady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

в ваших примерах используются обьекты :
dbo.N , dbo.f_nStrToTableEx_v2
Было бы неплохо скрипты на их создание предоставить , так как использовать ваш код не представляется возможным.
Спасибо.
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118640
kolyady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael
kolyady,

А откуда у вас приходит такое значение?

На 2016+ можно так:
Код: sql
1.
2.
3.
4.
declare @a varchar(50) = 'а';

select *
from openjson('[' + quotename(@a, '"') + ']') j;



метод хорош но ограничение в 128 символов все меняет, можно резать циклом и перебирать кусками , потом склеивать. Но чесно так себе метод. Может есть метод который может работать со строкой например nvarchar(max).
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118676
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolyady,

Код: sql
1.
2.
3.
4.
5.
6.
7.
SET STATISTICS IO, TIME OFF;

DECLARE @s NVARCHAR(MAX) = 'абвгдежзийрстуфхцчшщѐёђѓєѕіїјљѠѡѢѣѤѥѦѧѨѩ';

SELECT STRING_AGG(NCHAR(CONVERT(BINARY(2), SUBSTRING(value, 2, 4), 2)), '')
  FROM STRING_SPLIT(@s, '\')
 WHERE value > ' ';
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118679
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyady,

Можно выкинуть QUOTENAME() и заменить "двойными кавычками" без потери смысла. Особенно в рамках данного примера. Переменную использовать nvarchar(max), ну и т.д.

Тут самый главный вопрос, на который вы так и не ответили:
Ennor Tiegael
А откуда у вас приходит такое значение?

От ответа будут зависеть детали.
...
Рейтинг: 0 / 0
как перевести символ в unicode и наоборот
    #40118733
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyady
aleks222,

в ваших примерах используются обьекты :
dbo.N , dbo.f_nStrToTableEx_v2
Было бы неплохо скрипты на их создание предоставить , так как использовать ваш код не представляется возможным.
Спасибо.

Ща я ведро кода залью.
Там и так фсе понятно.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как перевести символ в unicode и наоборот
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]