我正在为需要支持 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.