2016-09-26 8 views
3

У меня есть приложение Coldfusion, работающее на Lucee, которое подключается к базе данных SQL Server.Почему некоторые символы не правильно вставляются SQL Server из CFQUERY?

Когда я запускаю следующий запрос непосредственно в SQL Server Manager:

UPDATE article 
SET content='20m²' 
WHERE id=3159 

колонна получает заполняется в порядке с 20m².

ОДНАКО, при запуске со страницы CFML, который просто работает следующим образом:

UPDATE статьи содержание SET = '20m²' WHERE ID = 3159

колонна получает заполняется: 20m²

Как и в случае, появляется этот дополнительный символ. Это также происходит с некоторыми другими специальными символами, но большинство из них в порядке. Это связано с некоторой конфигурацией разъема jdbc? Я не понимаю, какая разница между этими двумя? Помещение значения в тег cfqueryparam не имеет значения.

Благодаря

+0

Какая версия CF? Вы можете взглянуть на 'cfprocessingdirective', если он меньше CF11. – Beginner

+1

Что это за колонна? Это NVarchar? Если директива по обработке не работает, вы можете попробовать синтаксис unicode 'content = N'20m²'' ... Также убедитесь, что вы используете« cfqueryparam »для привязки переменной. –

+1

Является ли ваш файл закодирован в Windows1252 или Utf8? Ожидает ли сервер, что файл будет иметь другую кодировку? –

ответ

3

Если это жёстко, я полагаю, вы хотите, чтобы убедиться, что вы сохраните этот файл в Unicode UTF-8.

enter image description here

Кроме того, убедитесь ваши аргументы виртуальной машины Java будет обрабатывать, что хорошо. Admin> Настройки сервера> Java и JVM. Добавьте «-Dfile.encoding = UTF-8» в Аргументы.

enter image description here

+0

Поскольку есть запрос db, есть немного больше, чем просто изменение кодировки страницы ;-) Скорее всего, жесткое кодирование просто для тестирования в любом случае. Таким образом, другая сторона вопроса заключается в том, как обеспечить правильное сохранение правильных значений в базе данных * и *. Хорошо бы разработать полный цикл ... – Leigh

+0

Процесс устранения - убедитесь, что файл с размером «20 м²» сохраняется и правильно считывается. Это может быть конец db вещей, которые работают нормально. – Jules