Почему ODBC не поддерживает слова с французским акцентом при вставке на сервер SQL? - PullRequest
1 голос
/ 29 мая 2019

Я работаю с php, чтобы вставить строку в sql server с odbc, но у меня есть эта проблема с французскими акцентами (é, â, ô, î, è, ...), когда я вставляю внутри sql server, это работает и также php читает его хорошо, но при вставке с использованием odbc он читается как специальный символ

Пример:

$sujet = 'BEM relevé bancaire';

$sql ="INSERT into matrice values('$groupe','$sujet','$nom','$ref','$ref','$next')";

odbc_exec($connection, $sql);

Выход:

ID: 542

группа: имя_группы

КИ: БЭМ, релевантный * bancaire //THE PROBLEM

Ном: Имя

effectationRef: 1

restAffect: 1

nextAffect: 0

How can I make it reads the french accents ?

Возможный дубликат, к сожалению, не отвечает на мой вопрос

1 Ответ

0 голосов
/ 30 мая 2019

Мне нужно увидеть схему таблицы, чтобы дать определенный ответ. Типы данных SQL Server char и varchar не поддерживают наборы двухбайтовых символов. Убедитесь, что в столбце таблицы, в который вы хотите вставить, в качестве типа данных указан nchar или nvarchar.

Вы можете проверить это с помощью простой таблицы с несколькими столбцами. Вставка одного и того же значения в столбец A и столбец B приведет к различным результатам.

Create table test (A varchar(20), B nvarchar(20))
Insert into test (A,B) values ('â',N'â')

Если это не решит проблему, то я думаю, что кодовая страница клиента отличается от кодовой страницы сервера sql. Подробнее об этом можно прочитать здесь: Вы не можете правильно переводить символьные данные с клиента на сервер, используя драйвер ODBC для SQL Server, если кодовая страница клиента отличается от кодовой страницы сервера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...