Кодирование символа в Java - PullRequest
0 голосов
/ 05 февраля 2012

Поэтому я пытаюсь просто закодировать символ в файл, но по какой-то причине он не работает. Здесь , где я нашел пример кода, а вот мой код:

public class derp : MonoBehaviour{
    public Char[] chars = new Char[] {'a', 'b', 'c', 'r', 't', 'h'};

    void Start(){
        UTF8Encoding utf8 = new UTF8Encoding();
        Byte[] encodedBytes = utf8.GetBytes(chars);

        FileStream stream = new FileStream(Application.dataPath+"/testing.wld", FileMode.Create);
        for(int i = 0; i < chars.Length; i++){
            stream.WriteByte(encodedBytes[i]);
        }
        stream.Close();
    }
}

Я запустил скрипт, открыл его и этот - это то, что файл выглядиткак:

Я не хочу, чтобы какой-либо старый человек мог открыть файл и редактировать данные, которые в нем.Однако картина ясно показывает, что это возможно.Мой код ничем не отличается от кода в примере, но по какой-то причине в файле нет закодированных данных.Так почему это не работает?Почему данные не закодированы?

Ответы [ 3 ]

3 голосов
/ 05 февраля 2012

Ну, данные закодированы, но похоже, что вы хотели, чтобы они были зашифрованы . UTF-8 не для криптографии; это просто набор символов. Кодировка UTF-8 выглядит точно так же, как ASCII, поэтому Блокнот может читать файл.

Если вы хотите зашифровать файл, одним из вариантов является шифрование RSA. Проверьте класс RSACryptoServiceProvider:

http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.aspx

0 голосов
/ 05 февраля 2012

Данные кодируются , и все работает так, как задокументировано и ожидается всеми, кто знает UTF8. Возможно, ваши собственные ожидания не соответствуют действительности? Как вы думаете, что такое "UTF8" и что означает "кодировка"?

0 голосов
/ 05 февраля 2012

Будет закодировано - в UTF8 ...

...