SP9上的XSJS字符集问题

2020-08-24 09:13发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在xsjs服务中执行一个简单的select,然后以json格式返回结果。 一切正常,除了在SP9(rev 93)升级后,字符集不再起作用。 见下文:

表格人员:

名称| 姓

João| 席尔瓦

这里是XSJS文件:

$。response.contentType ='application/json; charset = utf-8';

var conn = $ .db.getConnection();

var pstmt = conn.prepareStatement('select * from" PEOPLE"');

var rs = pstmt.executeQuery();

var jsonArr = [];

while(rs.next()){

jsonArr.push({

名称:rs.getString(1),

suname:rs.getString(2)

});

}

rs.close();

pstmt.close();

conn.close();

$。response.setBody(JSON.stringify(jsonArr));

$。response.status = $ .net.http.OK;

运行SP8时,结果如下:

[

-- { 名称: "João", ame : "席尔瓦" }

]


现在运行SP9,结果是:


[

-{

名称: "João", ame : "席尔瓦" }

]


你知道我该怎么解决吗?


感谢和问候,

Roberto Falk

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在xsjs服务中执行一个简单的select,然后以json格式返回结果。 一切正常,除了在SP9(rev 93)升级后,字符集不再起作用。 见下文:

表格人员:

名称| 姓

João| 席尔瓦

这里是XSJS文件:

$。response.contentType ='application/json; charset = utf-8';

var conn = $ .db.getConnection();

var pstmt = conn.prepareStatement('select * from" PEOPLE"');

var rs = pstmt.executeQuery();

var jsonArr = [];

while(rs.next()){

jsonArr.push({

名称:rs.getString(1),

suname:rs.getString(2)

});

}

rs.close();

pstmt.close();

conn.close();

$。response.setBody(JSON.stringify(jsonArr));

$。response.status = $ .net.http.OK;

运行SP8时,结果如下:

[

-- { 名称: "João", ame : "席尔瓦" }

]


现在运行SP9,结果是:


[

-{

名称: "João", ame : "席尔瓦" }

]


你知道我该怎么解决吗?


感谢和问候,

Roberto Falk

付费偷看设置
发送
2条回答
吹牛啤
1楼 · 2020-08-24 09:37.采纳回答

您使用了错误的get函数。

JSDoc:类:ResultSet

getString(columnIndex)→{string}

返回指定列的字符串值。 getString用于CHAR和VARCHAR列类型。 仅ASCII,不适用于包含Unicode字符的字符串。

getNString(columnIndex)→{string}

返回指定列的字符串值。 getNString用于NCHAR,NVARCHAR和SHORTTEXT列类型。

我不确定为什么它甚至可以在SPS 08上使用。它确实不应该。

我可能会指出,如果您使用的是SPS 09,则可以使用新的数据库接口,该接口直接返回JSON,并且不需要使用任何特定于类型的get或set函数。 这也可以避免您的问题。

JSDoc:命名空间:hdb

< a hraf="/img/community/developer-center/hana/blog/2014/12/02/sap-hana-sps-09-new-developer-features-new-xsjs-database-interface"> http://scn。 sap.com/community/developer-center/hana/blog/2014/12/02/sap-hana-sps-09-new-developer-features-new-xsjs-database-interface

# p#

您好,我们刚刚解决了这个错误吗? 我们正在使用此$ .db.resultSet.getString函数,并且一切正常,只是现在我们不得不更改为getText并对此帖子感到困惑。 不用说我们将来将与$ .hdb一起使用。

自2019年9月以来,我们正在HANA 1.00.122.18.1531375173上工作。

上个月我们不得不将系统迁移到另一台主机,我不知道这是否可以更改某些内容。

谢谢!

槿木_熙
2楼-- · 2020-08-24 09:40

嗨罗伯托,

在更新到SP9之后,今天我们发现了同样的问题。

当我们使用一个库返回所有sql select语句(" readSql()")时,我们只需在.xsjs代码中放入一个javascript函数即可:

例如:decodeURIComponent(escape(rs.getString(i)))

致谢

Caio Melzer

一周热门 更多>