Я разрабатываю приложение на MacOS в Ruby 3.0 с использованием SQL Server 2008 R2 в качестве базы данных.Я подключаюсь через freetds и tiny_tds.
Когда я сохраняю данные через скаффолд с использованием расширенных символов, например, - все работает нормально, буквы выглядят правильно при просмотре данных в SQL Server Management Studio и когда япрочитайте данные обратно в интерфейс Rails, и он отобразится правильно.
Когда я развертываю приложение на машине Linux, которая также использует freetds и tiny_tds для подключения к той же базе данных, я получаю искаженные символы в интерфейсе.Когда я сохраняю данные через сервер Linux, символы правильно отображаются в браузере, но при просмотре данных в SSMS символы кодируются и не читаются (я ввожу ÞÞðð) и получаем это в SSMS:
ÞÞðð
Это я получаю в браузере с сервера Linux для Suðurnes, записанного в БД с Mac:
Su�urnes
Я установил эту строку в database.yml:
encoding: utf8
Это ничего не изменило.Я также установил эту строку в файле freetds.conf:
client charset = UTF-8
База данных SQL имеет Icelandic_CI_AS в качестве CODEPAGE, но я уверен, что это не ошибка, потому что она работает правильно с компьютера Mac.
Я проверил это как на Passenger apache, так и на WEBrick, поэтому я не думаю, что это вызвано apache.
Так есть ли какие-либо настройки в Linux, на которые мне нужно перейтиПозвольте ему вести себя так же, как Mac?
По существу, между веб-сервером и базой данных есть что-то, что преобразует значения туда и обратно.
РЕДАКТИРОВАТЬ: * Когда я использую инструмент командной строки tsql для запроса базы данных, я получаю правильную кодировку текстов.Итак, насколько я понимаю, это путь: Веб-клиент> Apache> Приложение Rails> Tiny_tds> Freetds> SQL Server Итак, проблема должна быть на сайте Apache или в самом приложении rails.На самом деле не имеет значения, использую ли я Apache или WebBrick, поэтому я не совсем понимаю, в чем проблема.Есть идеи? *
С уважением, Иоганн