do these not do what you need (or form the basis for it)? julia> convert(Vector{Uint8}, utf8("hello world")) 11-element Array{Uint8,1}: 0x68 0x65 0x6c 0x6c 0x6f 0x20 0x77 0x6f 0x72 0x6c 0x64
julia> bytestring(convert(Vector{Uint8}, utf8("hello world"))) "hello world" On Tuesday, 11 March 2014 07:37:35 UTC-3, Robert Feldt wrote: > > Implementing simple RSA crypto in pure Julia (not for actual sec-sensitive > use) but for low-sec applications. But I have troubles with encoding > strings as integers and back. The PKCS#1 crypto standard says that strings > should be seen as 8-bit (octet) strings. I tried creating a Uint8[] with > the byte values and converting to ASCIIString but that fails when the > values are more than 7 bits. However, I cannot just convert to UTF8String > instead since those might not be valid either. > > Ideas for how to do this cleanly? Current code below... Thanks! > > # Convert a non-negative integer i into an octet string. > function i2osp(x::Integer, len = nothing) > if typeof(len) <: Integer && (x >= 256^len) > throw("integer is too large") > end > > if x < 0 > throw("integer is negative") > end > > bytes = Uint8[] > while x > 0 > b = uint8(x & 0xff) > push!(bytes, b) > x = x >>> 8 > end > str = convert(ASCIIString, reverse(bytes)) # Fails if any byte value > > 127 > > if typeof(len) <: Integer && (length(str) < len) > str = repeat("\0", len - str) * str > end > > return str > end > >