Преобразование значений Unicode / UTF-8 в арабский текст | SQL Server

#sql #json #sql-server #unicode #arabic

#sql #json #sql-сервер #юникод #Арабский

Вопрос:

Получение JSON из API.

 {
    "data":[
        {   
        "id":"1",
        "name_ar":"u0647u0627u0646u064a u0639u0628u062f  u0645u0633u0644u0645",
        "name_en":"Hani  Moussallem"
        },
        {
        "id":"2",
        "name_ar":"u0633u0639u0648u062f u0639u0628u062fu0627u0644u0639u0632u064au0632  u0628u0627u062du064au062fu0631u0647",
        "name_en":"Saud Abdulaziz Bahaidarah "
        }
    ]
}
    
 

который на самом деле является арабским текстом, как показано ниже:

 {
    "data": [
        {
            "id": "1",
            "name_ar": "هاني عبد  مسلم",
            "name_en": "Hani  Moussallem"
        },
        {
            "id": "2",
            "name_ar": "سعود عبدالعزيز  باحيدره",
            "name_en": "Saud Abdulaziz Bahaidarah "
        }
    ]
}
 

чтобы получить арабский текст, напишите следующий SQL-запрос, но получите значения Unicode вместо арабского. Как мне преобразовать эти значения Unicode / UTF8 в арабский?

вот сценарий SQL:

 SELECT * FROM OPENJSON(N'{
    "data":[
        {   
        "id":"1",
        "name_ar":"u0647u0627u0646u064a u0639u0628u062f  u0645u0633u0644u0645",
        "name_en":"Hani  Moussallem"
        },
        {
        "id":"2",
        "name_ar":"u0633u0639u0648u062f u0639u0628u062fu0627u0644u0639u0632u064au0632  u0628u0627u062du064au062fu0631u0647",
        "name_en":"Saud Abdulaziz Bahaidarah "
        }
    ]
}')
 

введите описание изображения здесь

Комментарии:

1. Чего вы пытаетесь достичь? У вас есть веб-приложение? Используя pPython, C #, Java, JavaScript? Без этого вам трудно что-то посоветовать.

2. @Tarik делает в SQL Server как помеченный

Ответ №1:

Когда вы запускаете OPENJSON, вы анализируете только верхний уровень документа JSON. value Возвращается в виде строки неразработанного JSON. Если вы выполните синтаксический анализ до нужного уровня, вы получите значения unicode, проанализированные правильно. НАПРИМЕР

 SELECT * FROM OPENJSON(N'{
    "data":[
        {   
        "id":"1",
        "name_ar":"u0647u0627u0646u064a u0639u0628u062f  u0645u0633u0644u0645",
        "name_en":"Hani  Moussallem"
        },
        {
        "id":"2",
        "name_ar":"u0633u0639u0648u062f u0639u0628u062fu0627u0644u0639u0632u064au0632  u0628u0627u062du064au062fu0631u0647",
        "name_en":"Saud Abdulaziz Bahaidarah "
        }
    ]
}', '$.data')
with (
       id int,
       name_ar nvarchar(200),
       name_en nvarchar(200)
      )
 

выводит

       id          name_ar                       name_en
----------- ----------------------------- -------------------------------
1           هاني عبد  مسلم                 Hani  Moussallem
2           سعود عبدالعزيز  باحيدره       Saud Abdulaziz Bahaidarah