簡體   English   中英

如何向SmartGWT應用程序添加UTF-8支持

[英]How to add UTF-8 support to SmartGWT application

我正在為需要支持utf-8語言(RTL)的客戶端實現smartgwt應用程序。 現在,我有了一個接受波斯文字的listgrid,當我嘗試將其保存到我的mssql 2008數據庫中時,它像這樣保存它? 而不是Peransan文字本身。 在我的數據庫表中,我已將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]信息PoolManager-[builtinApplication.importExcelDS_add]已為“ SQLServer”對象啟動SmartClient池

=== 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;獲取SQLServer的SQLServer連接; DatabaseName = dbilling; 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]信息SQLDriver-[builtinApplication.importExcelDS_add]在'SQLServer'上執行SQL更新:插入銷售(可用,productMth,productName,productYr)值(空, NULL,'بهآسااماکن۸-%لیتر-محلولضدعفونیکننده',NULL)

唯一缺少的是N,它應該在utf-8字符串之前就已經在那里。 像這樣

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

當我對俄語字符有疑問時,我在數據源的構造函數中添加了以下代碼:

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

我正在使用JSON格式的REST DataSource。

好的,讓它起作用並適合希望獲得該問題答案的人。 我通過將字段的類型分配為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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM