将base64转换为可读的字符串

我在SQL Server 2016中有一个具有nvarchar列的表,我想将其存储在配置单元中。 nvarchar列可以包含非ASCII字符。将来自SQL Server的数据提取到一个文件中,并将nvarchar列转换为base64编码的字符串。我尝试了以下将base64转换回可读字符串的方法:

select decode(unbase64(BASE64STR),'UTF-8');

它失败,并出现以下错误:

  

org.apache.hive.service.cli.HiveSQLException:编译时出错   语句:失败:SemanticException [错误10014]:行1:7错误   参数``UTF-8'':org.apache.hadoop.hive.ql.metadata.HiveException:   java.nio.charset.MalformedInputException:输入长度= 1

以下代码能够正确解码BASE64编码的字符串

select decode(unbase64(BASE64STR),'UTF-16LE');

使用UTF-16LE从nvarchar类型列中解码字符串是否安全?可以使用列中存储的任何数据吗?是否存在另一种方法来实现从SQL Server到Hive的nvarchar类型数据的ETL功能?

sousou0263 回答:将base64转换为可读的字符串

看看SDU工具(免费)中使用base64的功能。它们与varbinary进/出,但在将字符串强制转换到/从varbinary时可以正常工作。至少,代码应为您提供一个良好的开端。它们位于:http://sdutools.sqldownunder.com

本文链接:https://www.f2er.com/3155314.html

大家都在问