我有一个Base64编码值,它是在Oracle中使用
select ...
utl_encode.base64_encode(utl_raw.cast_to_raw(id)) as encodedid from ...最初的甲骨文字符集是UTF8或Unicode。现在我正试图在C#中解码这个,但是结果很难辨认。
encodedTranscript = "4D7A59344E7A49334D513D3D";
byte[] encodedTid = Convert.FromBase64String(encodedTranscript);
String transcriptId = Encoding.Unicode.GetString(encodedTid);在这种情况下,产生的transcriptId是难以辨认的。我曾尝试过Encoding.UTF8和Encoding.Unicode,但这两种结果都很难辨认。
有什么建议吗?
提前谢谢你。
发布于 2013-10-26 11:15:23
您必须知道"id“最初是如何存储的。id列是什么类型的?它最初是怎么编码的?一旦你知道了这一点,你就必须走反向路径。假设id最初是c# UTF8编码的字符串。然后获取字节并将其作为raw存储在数据库中。您需要做的是从数据库中读取原始字节,并将其用UTF8和voilà编码。
另一方面,如果将id作为utf8字符串,然后获取字节,然后将其编码为base64,则必须对base64进行解码,而不是将其编码为raw。然后取原始字节并将它们编码为utf8。
https://stackoverflow.com/questions/19601523
复制相似问题