Если ваш столбец равен NVARCHAR
, поскольку у вас есть символы Юникода, вы можете отличить Юникод от не-Юникода, сравнивая его преобразование с VARCHAR
.Любой символ, недоступный как CHAR
, будет ?
, и тогда равенство не будет выполнено.
SELECT
T.TextColumn,
IsUnicode = CASE
WHEN CONVERT(VARCHAR(100), T.TextColumn) <> CONVERT(NVARCHAR(100), T.TextColumn) THEN 1
ELSE 0 END
FROM
YourTable AS T
Вы можете изменить длину сравнения по желанию (этот пример для 100
),просто убедитесь, что вы набрали достаточное количество символов, чтобы из арабских текстов было получено как минимум 1 значение Юникода.
Я предлагаю вам сохранить правильный языковой тег каждого текста в другом столбце, чтобы у вас не былоделать эту проверку каждый раз (это тяжелый процесс).
Обратите внимание, что это решение не будет полностью отличать английский от арабского, как указано в комментариях ниже.