gpt4 book ai didi

c# - 悖论 DB : cyrillic words in a query, C#

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:31 27 4
gpt4 key购买 nike

我需要对 Paradox 数据库执行查询。有一个表,其中包含带有西里尔文字的数据,我正在尝试在这样的查询中使用西里尔文字参数:

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

在 AccessZone 表中,我有名称为“Территория”的记录,但此查询返回 0 行。

我将此查询编码为 windows-1252 编码,但结果相同。

当我得到一个包含西里尔字母值的查询结果时,我已经破坏了像“??????”这样的符号,所以,我从 windows-1252 解码它们,然后得到正确的值。我决定在执行带有西里尔符号的查询时使用这个技巧,但它对结果没有影响,我仍然有 0 行。

我像这样使用 C# 进行编码:

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 在 DOS 和 Windows 产品中有多个版本。但是大多数或所有那些在该系统中使用带有“代码页”的ascii编码。您可能会得到正确的记录。但我不确定如何在 Unicode 中显示它。我认为 Unicode 在显示获得的数据时有问题。我认为您必须了解最初存储数据时使用的代码页。 Paradox 可能将此称为排序顺序,至少在某些版本中它是由 Paradox.sor 表定义的。

关于c# - 悖论 DB : cyrillic words in a query, C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16104534/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com