首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解码甲骨文utl_encode.base64_encode()

解码甲骨文utl_encode.base64_encode()
EN

Stack Overflow用户
提问于 2013-10-26 00:39:00
回答 1查看 1.4K关注 0票数 1

我有一个Base64编码值,它是在Oracle中使用

代码语言:javascript
复制
select ... 
utl_encode.base64_encode(utl_raw.cast_to_raw(id)) as encodedid from ...

最初的甲骨文字符集是UTF8或Unicode。现在我正试图在C#中解码这个,但是结果很难辨认。

代码语言:javascript
复制
        encodedTranscript = "4D7A59344E7A49334D513D3D";
        byte[] encodedTid = Convert.FromBase64String(encodedTranscript);
        String transcriptId = Encoding.Unicode.GetString(encodedTid);

在这种情况下,产生的transcriptId是难以辨认的。我曾尝试过Encoding.UTF8和Encoding.Unicode,但这两种结果都很难辨认。

有什么建议吗?

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-26 11:15:23

您必须知道"id“最初是如何存储的。id列是什么类型的?它最初是怎么编码的?一旦你知道了这一点,你就必须走反向路径。假设id最初是c# UTF8编码的字符串。然后获取字节并将其作为raw存储在数据库中。您需要做的是从数据库中读取原始字节,并将其用UTF8和voilà编码。

另一方面,如果将id作为utf8字符串,然后获取字节,然后将其编码为base64,则必须对base64进行解码,而不是将其编码为raw。然后取原始字节并将它们编码为utf8。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19601523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档