C # веб-сервис, проблема с кодировкой MySql - PullRequest
1 голос
/ 12 ноября 2010

Я использую веб-сервис C # для вставки, удаления и получения данных из базы данных MySql.Проблема в том, что некоторые данные на македонском (кириллице).

Когда я вставляю данные непосредственно в базу данных, они вставляются нормально.Например: «дсд» - это «дсд».Когда я вставляю через сервис, это не так.Например: «дсд» - это «???».Когда я пытаюсь получить данные через сервис, он получает это нормально.В чем проблема с вставкой?

Вот часть моего кода для вставки:

    MySqlConnection connection = new MySqlConnection(MyConString);
    MySqlCommand command = connection.CreateCommand();
    command.CommandText = "INSERT INTO user (id_user, name VALUES (NULL, ?name);";
    command.Parameters.Add("?name", MySqlDbType.VarChar).Value = name;
    connection.Open();
    command.ExecuteReader();

    connection.Close();
    return thisrow;

Tnq U заранее !!!

Ответы [ 2 ]

2 голосов
/ 14 ноября 2010

Решение находится в строке подключения: MyConString = "SERVER = localhost;" + "БАЗА ДАННЫХ = ваша база данных;" + "charset = utf8;";.

0 голосов
/ 12 ноября 2010

Я бы посмотрел на кодировку для самого веб-сервиса. Проблема может заключаться в превращении текста в строку SOAP для отправки в службу. Строковые данные по умолчанию являются Unicode в .NET, поэтому, как только они попадут в веб-сервис, все будет в порядке.

Чтобы убедиться, что это проблема, присоедините отладчик к методу, в котором есть фрагмент кода и точка останова seta при добавлении параметра или около него. Строка «name», которую вы назначаете параметру, должна правильно отображаться в окне Watch или Locals. Если это не так, ваш код не получил ожидаемую строку, что, вероятно, означает, что ваши клиенты кодируют в ASCII или кодовую страницу ISO, отличную от кириллицы.

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