2016-10-09 13 views
0

Swiftで文字列とデータをエンコードしてデコードしようとしています。 Javaでは比較的簡単ですが、私は以下のスニペットコードのようにCharsetCharsetDecoderCharsetEncoderのように使用できます。 私はソリューションがString.Encodingを使用することだと思いますがどうですか?スウィフトデコードとエンコード文字列

public static void Test() throws CharacterCodingException { 
    Charset charset = Charset.forName("UTF-8"); 
    CharsetDecoder chdecoder = charset.newDecoder(); 
    CharsetEncoder chencoder = charset.newEncoder(); 
    String s = "Encode and Decode Example."; 
    if(!chencoder.canEncode((char) 9)) return;//not here but i need this method 
    ByteBuffer byteBuffer= ByteBuffer.wrap(s.getBytes()); 
    CharBuffer charBuffer = chdecoder.decode(byteBuffer); 
    ByteBuffer newByteBuff = chencoder.encode(charBuffer); 
    while(newByteBuff.hasRemaining()){ 
     char ch = (char) newByteBuff.get(); 
     System.out.print(ch); 
    } 
    newByteBuff.clear(); 
} 

答えて

0
let str = "iOS Developer Tips encoded in Base64" 
println("Original: \(str)") 
let utf8str = str.dataUsingEncoding(NSUTF8StringEncoding) 
if let base64Encoded =  utf8str?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) 
{ 
println("Encoded: \(base64Encoded)") 
if let base64Decoded = NSData(base64EncodedString: base64Encoded, options: NSDataBase64DecodingOptions(rawValue: 0)) 
         .map({ NSString(data: $0, encoding: NSUTF8StringEncoding) }) 
{ 
    // Convert back to a string 
    println("Decoded: \(base64Decoded)") 
} 
} 
0

答えるSwift3

let str = "iOS Developer Tips encoded in Base64" 
print("Original: \(str)") 
let utf8str = str.data(using: String.Encoding.utf8) 
if let base64Encoded = utf8str?.base64EncodedString(options:Data.Base64EncodingOptions(rawValue: UInt(0))) 
{ 
    print("Encoded: \(base64Encoded)") 
    if let base64Decoded = NSData(base64Encoded: base64Encoded, options:NSData.Base64DecodingOptions(rawValue: UInt(1))) 
     .map({ NSString(data: $0 as Data, encoding: String.Encoding.utf8.rawValue) }) 
    { 
     // Convert back to a string 
     print("Decoded: \(base64Decoded)") 
    } 
} 
関連する問題