Просмотр полной версии : WSTRING передаёт латиницу с пробелами
mad_kinder
16.01.2025, 11:48
Добрый день! Пытаюсь записать текст в приложение на C# (сначала в приложение потом приложение в базу)
в codesys делаю следующий запрос:
asSqlStatement1[0] :="INSERT INTO test_codesys (test_name, test_real) VALUES ($'добавка №11$', 15.89)";
при этом в wireshark видны отправленные данные, латиница отображается с пробелами I.N.S.E.R.T I.N.T.O , а кириллица нормально.
соответственно база выдаёт ошибку при таком запросе
Если переменную asSqlStatement1[0] делаю типа STRING то данные прилетают нормальные без пробелов, но кириллица не отображается в базе
как сделать так чтобы латинские буквы в типе WSTRING записывались без пробелов?
Евгений Кислов
16.01.2025, 12:31
Добрый день.
Какой контроллер вы используете?
Вроде как в WSTRING используется UNICODE. А там каждый символ занимает два байта.
А на SQL какая кодировка стоит? Если UTF-8, к примеру, то тогда ничего не совпадёт, так как как раз в UTF-8 латиница занимает 1 байт, а кириллица - два.
mad_kinder
16.01.2025, 13:08
Я использую СПК-110
mad_kinder
16.01.2025, 13:11
Вроде как в WSTRING используется UNICODE. А там каждый символ занимает два байта.
А на SQL какая кодировка стоит? Если UTF-8, к примеру, то тогда ничего не совпадёт, так как как раз в UTF-8 латиница занимает 1 байт, а кириллица - два.
Да всё верно можно ли как то собрать строку из WSTRING и STRING например в бинарном виде?
На стороне MySql менял кодировки всё равно присылает кракозябры....
Евгений Кислов
16.01.2025, 13:12
Я использую СПК-110
Напишите, пожалуйста, на support@owen.ru или мне в телеграм (см. в подписи).
Подготовьте доступ по AnyDesk.
mad_kinder
16.01.2025, 13:15
Пробовал пример где запись происходит через пример с linux терминал записывает в базу русские символы нормально
Евгений Кислов
16.01.2025, 13:17
Пробовал пример где запись происходит через пример с linux терминал записывает в базу русские символы нормально
Тогда рекомендую использовать наш пример.)
mad_kinder
16.01.2025, 13:44
всё разобрался проблема была на стороне приложения, сейчас с пробелами передаёт всё равно но приложению пофиг на эти пробелы и выполняет всё равно запрос.
ещё вопрос: а если я использую ваш пример как команда с linux терминала взаимодействует с БД MySQL в ядре контролеров овен что то стоит? и будет ли работать с любым linux терминалом?
Евгений Кислов
16.01.2025, 13:56
всё разобрался проблема была на стороне приложения, сейчас с пробелами передаёт всё равно но приложению пофиг на эти пробелы и выполняет всё равно запрос.
ещё вопрос: а если я использую ваш пример как команда с linux терминала взаимодействует с БД MySQL в ядре контролеров овен что то стоит? и будет ли работать с любым linux терминалом?
В состав прошивки наших контроллеров входит MySQL клиент (утилита mysql).
Что касается второго вопроса - что именно вы называете "любым linux терминалом"?
mad_kinder
16.01.2025, 14:01
В состав прошивки наших контроллеров входит MySQL клиент (утилита mysql).
Что касается второго вопроса - что именно вы называете "любым linux терминалом"?
понял
ядром вернее.
Можно ли как то установить этот пакет на другое устройство?
Евгений Кислов
16.01.2025, 15:27
понял
ядром вернее.
Можно ли как то установить этот пакет на другое устройство?
Лучше задать этот вопрос производителю "другого устройства".
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot