Вариации в байтовом значении строки - PullRequest
0 голосов
/ 12 февраля 2019

Изменится ли значение байта строки, если система будет изменена с 32-разрядной на 64-разрядную?

Предположим, у меня есть строка, и мне нужно значение байта этой строки.Я хочу знать, остаются ли значения байтов в 32-разрядной и 64-разрядной системах Windows одинаковыми?

1 Ответ

0 голосов
/ 12 февраля 2019

Я должен предположить, что под "байтовым значением строки" вы подразумеваете байтовые значения, сгенерированные путем кодирования строки с заданной кодировкой.

Если это так, то переход с 32-битной архитектуры на64-битная архитектура не изменит результат.

Однако , если вы просто используете String.getBytes() без аргументов для получения byte[], возвращаемое значение будетзависит от кодировки системы по умолчанию.Хотя это вряд ли будет отличаться между 32-битной и 64-битной версиями одной и той же ОС с одинаковыми настройками, кодировка системы по умолчанию может варьироваться в зависимости от многих других параметров (таких как язык пользовательского интерфейса, настроенный в вашей ОС), поэтому это всегдаХорошая идея - избегать этой проблемы, всегда указав определенную кодировку, например, такую:

 byte[] bytes = myString.getBytes(StandardCharsets.UTF_8);

Этот вызов всегда будет выдавать одинаковые byte[] при вызове с одинаковыми значениями myString, независимо от того, какая ОС, архитектура илинастройка локали, на которой вы работаете.

...