NVARCHAR的内部编码是什么

2020-09-27 15:47发布

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

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


你好

我们正在编写ODBC客户端,并希望支持UTF-8并将UNICODE数据存储在NVARCHAR列中。

对于SQL绑定(参数/提取缓冲区),我们可以选择与UTF-8中的SQL_C_CHAR绑定(通过设置SQL_SQLDBC_CHAR_AS_UTF8),或将UTF-8转换为宽字符并与SQL_C_WCHAR绑定。

在客户端和/或服务器中进行最少的代码集转换的最佳方法是什么?

谢谢

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

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


你好

我们正在编写ODBC客户端,并希望支持UTF-8并将UNICODE数据存储在NVARCHAR列中。

对于SQL绑定(参数/提取缓冲区),我们可以选择与UTF-8中的SQL_C_CHAR绑定(通过设置SQL_SQLDBC_CHAR_AS_UTF8),或将UTF-8转换为宽字符并与SQL_C_WCHAR绑定。

在客户端和/或服务器中进行最少的代码集转换的最佳方法是什么?

谢谢

付费偷看设置
发送
2条回答
hengyuye
1楼-- · 2020-09-27 16:12

我的理解是,SQL_SQLDBC_CHAR_AS_UTF8设置将ASCII字符映射到UTF8,因此您不必在应用程序中执行此操作。

由于您无论如何都想使用NVARCHAR类型,因此该设置甚至不会影响您的解决方案。 因此,SQL_C_WCHAR是这里的解决方法。

有线协议( https://help。 sap.com/viewer/7e4aba181371442d9e4395e7ff71b777/2.0.02/zh-CN/eda890ef05364286b52c92283eea804d.html )将所有数据作为CESU-8发送,因此当您将ASCII数据读入SQL_C_CHAR时,我怀疑总体转换工作最多。

此处注意:既没有看到ODBC驱动程序源代码,也没有对这些选项的cpu/内存效果进行测量。

xfwsx85
2楼-- · 2020-09-27 16:29

谢谢Lars! 是的,我们将采用SQL_C_WCHAR的方式并使用iconv进行所需的转换。
此处的兄弟讨论: https://answers.sap.com/questions/298273/need-help-with-iso8859-x- and-utf-8-programming-wit.html

Seb

一周热门 更多>