
24i
Streaming Star
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2017
08:52 AM
Decoding Base64 string fails
Hi,
I'm trying to decode a Base64 string using the FromBase64String(s as String) from the roByteArray object:
https://sdkdocs.roku.com/display/sdkdoc/ifByteArray
Our customer is sure that the string that we receive is valid base-64 encoding, as it works on other platforms (tvOS, Android, etc)
However when I try to get a readable string out of I get: ???????0??????1?0 ??+?????
The string I tried to decode:
any thoughts?
I'm trying to decode a Base64 string using the FromBase64String(s as String) from the roByteArray object:
https://sdkdocs.roku.com/display/sdkdoc/ifByteArray
Our customer is sure that the string that we receive is valid base-64 encoding, as it works on other platforms (tvOS, Android, etc)
However when I try to get a readable string out of I get: ???????0??????1?0 ??+?????
blob = CreateObject("roByteArray")
blob.FromBase64String(apiData.data.Mid(startStr, 20))
print blob.ToAsciiString()
The string I tried to decode:
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
any thoughts?
5 REPLIES 5
destruk
Streaming Star
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2017
10:19 AM
Re: Decoding Base64 string fails
The string you are decoding has extended ascii characters in the output - anything >128 will show as a "?" if you are trying to print it or stick it into a label. But the decode option ought to work. Does Roku play Flash Streams?

RokuPam
Streaming Star
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2017
11:24 AM
Re: Decoding Base64 string fails
Hello,
We do not support flash streams.
Have you tried using another font (i.e. system font) that supports your characters? I'd also recommend reviewing our Encoding Guidelines from the SDK docs here.
We do not support flash streams.
Have you tried using another font (i.e. system font) that supports your characters? I'd also recommend reviewing our Encoding Guidelines from the SDK docs here.

24i
Streaming Star
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2017
11:41 AM
Re: Decoding Base64 string fails
I was already afraid this had something to do with the extended ASCII characters not being supported.
This string is from the manifests that we receive for the streams and contains a token that we have to use.
I will contact our client about this, thank you!
This string is from the manifests that we receive for the streams and contains a token that we have to use.
I will contact our client about this, thank you!


Roku Employee
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-26-2017
11:27 AM
Re: Decoding Base64 string fails
"24i" wrote:
I was already afraid this had something to do with the extended ASCII characters not being supported.
This string is from the manifests that we receive for the streams and contains a token that we have to use.
You should be able to work with the binary data in the roByteArray assuming the base64 decode was successful.
However, to use roByteArray ToAsciiString, the binary data must be either 7-bit ASCII or valid UTF-8 data,
as noted in the documentation.
And as RokuPam noted, if you are using non-Latin or "unusual" characters, the console you are printing to would
need to be set up to support UTF-8, including whatever font support might be needed to show the character glyphs.
NB_
Roku Guru
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-26-2017
04:54 PM
Re: Decoding Base64 string fails
"24i" wrote:
any thoughts?
Yes - this is base64-encoded binary. Go to say https://www.base64decode.org/ and decode the string, look at the result file and you will see it's not a proper text string, while it contains texts ("com.adobe.flashaccess.rights." something-something). I am not sure what it is - signed token or certificate chain - but text it is not. So you shouldn't expect ToAsciiString() making sense of it.