我正在为需要支持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和我的db中我得到了这个??????。 在我的数据库表中,我已将col类型定义为nvarchar,这是保存utf-8的要求。但问题是smartgwt没有以适当的格式将文本发送到数据库中。有人可以帮助我做到这一点。
在控制台中我看到一切正确
=== 2015-04-22 12:45:25,929 [9-27] INFO PoolManager - [builtinApplication.importExcelDS_add]为'SQLServer'对象启动SmartClient池
=== 2015-04-22 12:45:25,929 [9-27] DEBUG PoolableSQLConnectionFactory - [builtinApplication.importExcelDS_add]从系统配置初始化'SQLServer'的SQL配置 - 使用DriverManager:net.sourceforge.jtds.jdbc .Driver
=== 2015-04-22 12:45:25,929 [9-27] DEBUG PoolableSQLConnectionFactory - [builtinApplication.importExcelDS_add] net.sourceforge.jtds.jdbc.Driver查找成功
=== 2015-04-22 12:45:25,929 [9-27] DEBUG PoolableSQLConnectionFactory - [builtinApplication.importExcelDS_add] DriverManager通过jdbc url获取SQLServer的连接url jdbc:jtds:sqlserver:// localhost:1433; DatabaseName = dbilling;了useUnicode = TRUE;的characterEncoding = UTF-8; sendStringAsUnicode = TRUE;用户= teoit;密码=燮
=== 2015-04-22 12:45:25,929 [9-27] DEBUG PoolableSQLConnectionFactory - [builtinApplication.importExcelDS_add]仅将JDBC URL传递给getConnection
=== 2015-04-22 12:45:25,999 [9-27] INFO SQLDriver - [builtinApplication.importExcelDS_add]在'SQLServer'上执行SQL更新:INSERT INTO sales(available,productMth,productName,productYr)VALUES (NULL,NULL,'بهآسااماکن8% - 4لیتر - محلولضدعفونیکننده',NULL)
唯一缺少的是在utf-8字符串之前应该存在的N.像这样
INSERT INTO sales (available, productMth, productName, productYr) VALUES
(NULL, NULL, N'به آسا اماکن ۸ ٪ - ۴ لیتر - محلول ضد عفونی کننده', NULL)
can somebody help me to get this correct.
答案 0 :(得分:0)
当我遇到俄语字符问题时,我在数据源的构造函数中添加了这段代码:
DSRequest dsRequest = new DSRequest();
dsRequest.setContentType("application/json; charset=utf-8");
setRequestProperties(dsRequest);
我正在使用JSON格式的REST DataSource。
答案 1 :(得分:0)
好的,得到了它的工作,并希望得到这个问题的答案的peopel。 我通过将字段的类型指定为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>