Кодирование cp1252

Думайте о нем как складывающий lego блоки (n) вертикально и перепрыгивающий через них.

O (1) средства на каждом шаге, Вы ничего не делаете. Высота остается такой же.

O (n) означает на каждом шаге, Вы складываете c блоки, где c1 является константой.

O (n^2) означает на каждом шаге, Вы складываете блоки c2 x n, где c2 является константой, и n является количеством сложенных блоков.

O (nlogn) означает на каждом шаге, Вы складываете журнал c3 x n x n блоки, где c3 является константой, и n является количеством сложенных блоков.

6
задан Charles Goodwin 8 April 2014 в 16:25
поделиться

4 ответа

cp1252 - это кодировка по умолчанию в английских установках MS Windows (на что указывает Microsoft как ANSI). Java по умолчанию использует языковой стандарт системы в качестве кодировки символов по умолчанию. Что это означает, зависит от системы. Вообще я не люблю полагаться на кодировки по умолчанию. Если я знаю, что мой текст будет чистым ASCII, я его игнорирую - в противном случае я явно устанавливаю кодировку при создании экземпляра InputStreamReader , OutputStreamWriter , String и т. Д. Или при вызове getBytes .

Обратите внимание, что cp1252 - это , а не кодировка по умолчанию в командной строке Windows. Это еще более старый cp437, который вы можете увидеть (и изменить) с помощью команды chcp .

6
ответ дан 10 December 2019 в 02:48
поделиться

Это значение, по крайней мере, в Windows, является устаревшей кодовой страницей, используемой для текста не в Юникоде. Это то, во что ОС преобразует строки, когда вы используете старые ANSI API. Для любой новой программы он не должен иметь никакого эффекта (при этом, к сожалению, я все еще вижу достаточно программ, которые используют A, а не W варианты функций API).

Для вас, программа Java, ни одна из это должно иметь значение, поскольку Java использует исключительно Unicode. Однако, если вы хотите писать или читать текстовые файлы в кодовой странице системы, она вам понадобится.

Однако для командной строки эта кодировка не имеет значения, поскольку консоль по умолчанию использует кодировку OEM. который имитирует возраст DOS (довольно часто 850 или 437).

3
ответ дан 10 December 2019 в 02:48
поделиться

Поскольку на самом деле это не имеет ничего общего с Java, вы можно просто выбрать использование сценария WSH :

' save this script as printANSI.vbs
' usage: cscript /Nologo printANSI.vbs
Set objShell = CreateObject("WScript.Shell")
cp = objShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001" &_
                              "\Control\Nls\CodePage\ACP")
WScript.Echo cp

См. также команду chcp ; вы можете узнать, как работает кодирование в командной строке Windows ( некоторые ссылки в этом сообщении в блоге ).

1
ответ дан 10 December 2019 в 02:48
поделиться

Я считаю, что эта кодировка установлена ​​JVM, поэтому нет смысла извлекать ее извне

-1
ответ дан 10 December 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: