0

我正在为需要支持 utf-8 语言(RTL)的客户端实现一个 smartgwt 应用程序。现在我有一个接收波斯文本的listgrid,当我尝试将它保存到我的mssql 2008数据库时,它会像这样保存它????? 而不是 perisan 文本本身。在我的数据库表中,我将 col 类型定义为 nvarchar,这是保存 utf-8 的要求。但问题是 smartgwt 没有以正确的格式发送文本。我已经把它放在我的 html 文件中

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

当我查看 RPC 选项卡时,在开发人员控制台中。我看到 DSREquest 以 UTF-8 格式发送,但在 DSResponse 和我的数据库中我得到了这个??????。在我的数据库表中,我将 col 类型定义为 nvarchar,这是保存 utf-8 的要求。但问题是 smartgwt 没有以正确的格式将文本发送到数据库中。有人可以帮我解决这个问题。

在控制台中,我看到一切正确

=== 2015-04-22 12:45:25,929 [9-27] INFO PoolManager - [builtinApplication.importExcelDS_add] SmartClient 池为“SQLServer”对象启动

=== 2015-04-22 12:45:25,929 [9-27] 调试 PoolableSQLConnectionFactory - [builtinApplication.importExcelDS_add] 从系统配置中为“SQLServer”初始化 SQL 配置 - 使用 DriverManager:net.sourceforge.jtds.jdbc.Driver

=== 2015-04-22 12:45:25,929 [9-27] 调试 PoolableSQLConnectionFactory - [builtinApplication.importExcelDS_add] net.sourceforge.jtds.jdbc.Driver 查找成功

=== 2015-04-22 12:45:25,929 [9-27] 调试 PoolableSQLConnectionFactory - [builtinApplication.importExcelDS_add] DriverManager 通过 jdbc url jdbc:jtds:sqlserver://localhost:1433;DatabaseName=dbilling 获取 SQLServer 的连接; useUnicode=true;characterEncoding=UTF-8;sendStringAsUnicode=true;User=teoit;Password=seop

=== 2015-04-22 12:45:25,929 [9-27] 调试 PoolableSQLConnectionFactory - [builtinApplication.importExcelDS_add] 仅将 JDBC URL 传递给 getConnection

=== 2015-04-22 12:45:25,999 [9-27] INFO SQLDriver - [builtinApplication.importExcelDS_add] 在“SQLServer”上执行 SQL 更新:插入销售(可用,productMth,productName,productYr)值(NULL, NULL, 'به آسا اماکن ۸ ٪ - ۴ لیتر - محلول ضد عفونی کننده', NULL)

唯一缺少的是在 utf-8 字符串之前应该存在的 N。像这样

INSERT INTO sales (available, productMth, productName, productYr) VALUES               
(NULL, NULL, N'به آسا اماکن ۸ ٪ - ۴ لیتر - محلول ضد عفونی کننده', NULL)
can somebody help me to get this correct.
4

2 回答 2

0

好的,让它工作并为想要得到这个问题的答案的人。我通过将字段的类型指定为 ntext 来完成这项工作。所以这是数据源文件和名为 productName 的字段,其中有我的 UTF-8 文本

<DataSource ID="importExcelDS" serverType="sql" tableName="sales">
<fields>
    <field name="importID" type="sequence" hidden="true" primaryKey="true" />
    <field name="productName" title="Product Name" type="ntext" />
    <field name="productMth" title="product Mth" type="int" />
    <field name="productYr" title="product Yr" type="int" />
    <field name="available" title="Quantity" type="int" />
</fields>

于 2015-04-25T04:40:32.560 回答
0

当我遇到俄语字符问题时,我在数据源的构造函数中添加了以下代码:

DSRequest dsRequest = new DSRequest();
dsRequest.setContentType("application/json; charset=utf-8");
setRequestProperties(dsRequest);

我正在使用 JSON 格式的 REST 数据源。

于 2015-04-24T21:22:15.263 回答