zoukankan      html  css  js  c++  java
  • 【转】Contrary to the answers here, you DON'T need to worry about encoding!

    For those goals, I honestly do not understand why people keep telling you that you need the encodings. You certainly do NOT need to worry about encodings for this.

    Just do this instead:

    static byte[] GetBytes(string str)
    {
        byte[] bytes = new byte[str.Length * sizeof(char)];
        System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
        return bytes;
    }
    
    static string GetString(byte[] bytes)
    {
        char[] chars = new char[bytes.Length / sizeof(char)];
        System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
        return new string(chars);
    }

    As long as your program (or other programs) don't try to interpret the bytes somehow, which you obviously didn't mention you intend to do, then there is nothing wrong with this approach! Worrying about encodings just makes your life more complicated for no real reason.

    Additional benefit to this approach:

    It doesn't matter if the string contains invalid characters, because you can still get the data and reconstruct the original string anyway!

    It will be encoded and decoded just the same, because you are just looking at the bytes.

    If you used a specific encoding, though, it would've given you trouble with encoding/decoding invalid characters.

  • 相关阅读:
    C#方法Extra
    C#方法
    C#类型与变量
    归并排序算法
    2020 CiGA Game Jam活动总结
    插入排序算法
    游戏开发随笔
    2019厦门大学信息学院人工智能/智能科学与技术系夏令营(非计算机系)
    基于Dlib、OpenCV开发人脸识别程序的开发建议
    CCF CSP 201703
  • 原文地址:https://www.cnblogs.com/xiangniu/p/4255314.html
Copyright © 2011-2022 走看看