sql-server-2005 - 在 Delphi XE 中读取 SQL Server 字段文本值并同时进行字符转换

标签 sql-server-2005 delphi encoding delphi-xe

我有一个带有 COLLATION SQL_Latin_General_CP1_CI_AS 的 SQL Server 2005 数据库,我想通过 ADO 从 Delphi XE 运行查询。 SQL Server 中的数据是希腊语和拉丁语字符。但在 Delphi 中我得到不可读的字符串。我如何使用 Delphi XE 解决这个问题?

最佳答案

既然您说数据库中既有希腊字符也有拉丁字符,我猜您已经在数据库中使用nvarchar

在 Delphi 中,您应该使用 TWideStringField对于 nvarchar 字段。 TStringField用于varchar(ansiststring)。

Field1 包含“γειά σου”

StringField := ADODataSet1.FieldByName('Field1') as TStringField;
ShowMessage(StringField.Value);

ShowMessage 显示“?e??s??”

这很好用

WideStringField := ADODataSet1.FieldByName('Field1') as TWideStringField;
ShowMessage(WideStringField.Value);

编辑 1 如果数据库中有 varchar 字段,则应使用 TStringField 并且需要确保“非 Unicode 程序的语言”为 Greek(Greece)

“控制面板 - 区域和语言 - 管理 - 更改系统区域设置...”

关于sql-server-2005 - 在 Delphi XE 中读取 SQL Server 字段文本值并同时进行字符转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351201/

相关文章:

sql-server-2005 - 如何在T-SQL中分割字符串?

sql-server - SQL 查询,例如带有 OR 条件的 GROUP BY

delphi - Delphi 窗体启动时如何进行操作

c++ - 将 C++ time_t 转换为 Delphi TDateTime

android - 将叠加图形渲染到摄像机视频中

c# - Sql server 2005 Express Edition中的数据抓取技巧

visual-studio-2010 - SSIS - SQL Server 2005 和 Visual Studio 2010

delphi - 手动滚动 TComboBox

php - 用JS和PHP转义 "+"

python - 使用 python 编码重音字符时出现问题