Paradox DB: кириллица в запросе, C #

Мне нужно выполнить запрос к базе данных Paradox. Есть таблица, содержащая данные с кириллическими словами, и я пытаюсь использовать параметры кириллицы в таком запросе:

select * 
from AccessZone zn
where zn.Name= 'Территория'

В таблице AccessZone у меня есть записи с именем «Территория», но этот запрос возвращает 0 строк.

Я кодирую этот запрос в кодировку windows-1252, но получаю тот же результат.

Когда я получаю результат запроса, содержащий кириллические значения, у меня есть битые символы, такие как «??????», поэтому я декодирую их из windows-1252, а затем получаю правильные значения. Этот трюк я решил использовать, когда выполнял запрос с кириллическими символами, но это не повлияло на результат, у меня по-прежнему 0 строк.

Я кодирую с помощью С # вот так:

private static string DecodeTo1252(string source)
{
    Encoding srcEncodingFormat = Encoding.Unicode;
    Encoding dstEncodingFormat = Encoding.GetEncoding("windows-1252");
    try
    {
        byte[] output = Encoding.Convert(srcEncodingFormat, 
                                         dstEncodingFormat, 
                                         srcEncodingFormat.GetBytes(source));

        return dstEncodingFormat.GetString(output);
    }
    catch (Exception)
    {

    }
    return string.Empty;
}

Итак, как мне создать запрос или закодировать его для запроса к базе данных Paradox?


person Nick    schedule 19.04.2013    source источник
comment
Может быть, это поможет: Кодировка кириллицы в C #?   -  person Artemix    schedule 19.04.2013
comment
Нет, не помогло, но спасибо. На самом деле я знаю целевую кодировку, но это ничего не меняет. Я все еще получаю 0 строк после выполнения декодированного запроса.   -  person Nick    schedule 22.04.2013


Ответы (1)


У Paradox было несколько версий в продуктах DOS и Windows. Но большинство или все из них использовали кодировку ascii с «кодовыми страницами» в этой системе. Возможно, вы получаете нужные записи. Но я не уверен, как вы можете отобразить это в Unicode. Я думаю, что у Unicode проблемы с отображением полученных данных. Думаю, вам придется узнать, какая кодовая страница использовалась при первоначальном хранении данных. Paradox мог бы назвать это порядком сортировки, который, по крайней мере, в некоторых версиях определялся таблицей Paradox.sor.

person Patrick Moloney    schedule 16.05.2013