Difference between revisions of "Libchecker:Перекодирование текстовых данных"

From EjudgeWiki
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Проверяющие программы]]/[[libchecker]]/[[Libchecker:Функции|Функции]]/[[Libchecker:Перекодирование текстовых данных|Перекодирование текстовых данных]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Проверяющие программы]]/[[libchecker]]/[[Libchecker:Функции|Функции]]/[[Libchecker:Перекодирование текстовых данных|Перекодирование текстовых данных]]
 +
 +
Если в задаче требуется вывести текст на русском языке, при проверке вывода возникает проблема множественности кириллических кодировок. В зависимости от операционной системы, ее настроек или среды программирования, в которой подготовленна программа, русский текст может быть представлен в одной из следующих кодировок: [http://ru.wikipedia.org/wiki/KOI8-R KOI8-R], [http://ru.wikipedia.org/wiki/Windows-1251 CP1251], [http://ru.wikipedia.org/wiki/CP866 CP866], [http://ru.wikipedia.org/wiki/ISO8859-5 ISO], [http://ru.wikipedia.org/wiki/MacCyrillic MAC], [http://ru.wikipedia.org/wiki/UTF-8 UTF-8].
 +
 +
В качестве внутренней кодировки при обработке кириллических данных в библиотеке libchecker используется кодировка [http://ru.wikipedia.org/wiki/UCS-4 UCS-4], в которой на один символ отводится 4 байта. Библиотека предоставляет функции перекодирования данных в кодировку UCS-4 и обработки.
  
 
{|
 
{|
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4|checker_koi8r_to_ucs4]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4|checker_koi8r_to_ucs4]]</tt>
| перекодировать один символ из кодировки KOI8-R в кодировку UCS4
+
| перекодировать один символ из кодировки KOI8-R в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4|checker_cp866_to_ucs4]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4|checker_cp866_to_ucs4]]</tt>
| перекодировать один символ из кодировки CP866 в кодировку UCS4
+
| перекодировать один символ из кодировки CP866 в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4|checker_cp1251_to_ucs4]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4|checker_cp1251_to_ucs4]]</tt>
| перекодировать один символ из кодировки CP1251 в кодировку UCS4
+
| перекодировать один символ из кодировки CP1251 в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_koi8r_to_ucs4_buf]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_koi8r_to_ucs4_buf]]</tt>
| перекодировать буфер заданного размера из кодировки KOI8-R в кодировку UCS4
+
| перекодировать буфер заданного размера из кодировки KOI8-R в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_cp866_to_ucs4_buf]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_cp866_to_ucs4_buf]]</tt>
| перекодировать буфер заданного размера из кодировки CP866 в кодировку UCS4
+
| перекодировать буфер заданного размера из кодировки CP866 в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_cp1251_to_ucs4_buf]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_cp1251_to_ucs4_buf]]</tt>
| перекодировать буфер заданного размера из кодировки CP1251 в кодировку UCS4
+
| перекодировать буфер заданного размера из кодировки CP1251 в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_str|checker_koi8r_to_ucs4_str]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_str|checker_koi8r_to_ucs4_str]]</tt>
| перекодировать строку из кодировки KOI8-R в кодировку UCS4
+
| перекодировать строку из кодировки KOI8-R в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_cp866_to_ucs4_str]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_cp866_to_ucs4_str]]</tt>
| перекодировать строку из кодировки CP866 в кодировку UCS4
+
| перекодировать строку из кодировки CP866 в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_cp1251_to_ucs4_str]]</tt>
 
| <tt>[[Libchecker:checker_CHARSET_to_ucs4_buf|checker_cp1251_to_ucs4_str]]</tt>
| перекодировать строку из кодировки CP1251 в кодировку UCS4
+
| перекодировать строку из кодировки CP1251 в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_utf8_to_ucs4_buf|checker_utf8_to_ucs4_buf]]</tt>
 
| <tt>[[Libchecker:checker_utf8_to_ucs4_buf|checker_utf8_to_ucs4_buf]]</tt>
| перекодировать буфер заданного размера из кодировки UTF-8 в кодировку UCS4
+
| перекодировать буфер заданного размера из кодировки UTF-8 в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_utf8_to_ucs4_str|checker_utf8_to_ucs4_str]]</tt>
 
| <tt>[[Libchecker:checker_utf8_to_ucs4_str|checker_utf8_to_ucs4_str]]</tt>
| перекодировать строку из кодировки UTF-8 в кодировку UCS4
+
| перекодировать строку из кодировки UTF-8 в кодировку UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_ucs4_to_CHARSET|checker_ucs4_to_koi8r]]</tt>
 
| <tt>[[Libchecker:checker_ucs4_to_CHARSET|checker_ucs4_to_koi8r]]</tt>
| перекодировать один символ из кодировки UCS4 в кодировку KOI8-R
+
| перекодировать один символ из кодировки UCS-4 в кодировку KOI8-R
 
|-
 
|-
 
| <tt>[[Libchecker:checker_ucs4_to_CHARSET_str|checker_ucs4_to_koi8r_str]]</tt>
 
| <tt>[[Libchecker:checker_ucs4_to_CHARSET_str|checker_ucs4_to_koi8r_str]]</tt>
| перекодировать строку из кодировки UCS4 в кодировку KOI8-R
+
| перекодировать строку из кодировки UCS-4 в кодировку KOI8-R
 
|-
 
|-
 
| <tt>[[Libchecker:checker_ucs4_to_utf8_size|checker_ucs4_to_utf8_size]]</tt>
 
| <tt>[[Libchecker:checker_ucs4_to_utf8_size|checker_ucs4_to_utf8_size]]</tt>
| рассчитать число байт необходимых для кодирования заданной UCS4 строки в кодировку UTF-8
+
| рассчитать число байт необходимых для кодирования заданной UCS-4 строки в кодировку UTF-8
 
|-
 
|-
 
| <tt>[[Libchecker:checker_ucs4_to_utf8_str|checker_ucs4_to_utf8_str]]</tt>
 
| <tt>[[Libchecker:checker_ucs4_to_utf8_str|checker_ucs4_to_utf8_str]]</tt>
| перекодировать строку из кодировки UCS4 в кодировку UTF-8
+
| перекодировать строку из кодировки UCS-4 в кодировку UTF-8
 
|-
 
|-
 
| <tt>[[Libchecker:checker_ucs4_tolower|checker_ucs4_tolower]]</tt>
 
| <tt>[[Libchecker:checker_ucs4_tolower|checker_ucs4_tolower]]</tt>
| перевести символ в кодировке UCS4 в нижний регистр
+
| перевести символ в кодировке UCS-4 в нижний регистр
 
|-
 
|-
 
| <tt>[[Libchecker:checker_ucs4_tolower_buf|checker_ucs4_tolower_buf]]</tt>
 
| <tt>[[Libchecker:checker_ucs4_tolower_buf|checker_ucs4_tolower_buf]]</tt>
| перевести буфер заданного размера в кодировке UCS4 в нижний регистр
+
| перевести буфер заданного размера в кодировке UCS-4 в нижний регистр
 
|-
 
|-
 
| <tt>[[Libchecker:checker_ucs4_tolower_str|checker_ucs4_tolower_str]]</tt>
 
| <tt>[[Libchecker:checker_ucs4_tolower_str|checker_ucs4_tolower_str]]</tt>
| перевести строку в кодировке UCS4 в нижний регистр
+
| перевести строку в кодировке UCS-4 в нижний регистр
 
|-
 
|-
 
| <tt>[[Libchecker:checker_strcmp_ucs4|checker_strcmp_ucs4]]</tt>
 
| <tt>[[Libchecker:checker_strcmp_ucs4|checker_strcmp_ucs4]]</tt>
| сравнить две UCS4-строки
+
| сравнить две UCS-4 строки
 
|-
 
|-
 
| <tt>[[Libchecker:checker_eq_str_rus_ucs4|checker_eq_str_rus_ucs4]]</tt>
 
| <tt>[[Libchecker:checker_eq_str_rus_ucs4|checker_eq_str_rus_ucs4]]</tt>
| проверить совпадение строки в одной из поддерживаемых кириллических кодировок со строкой в кодировке UCS4
+
| проверить совпадение строки в одной из поддерживаемых кириллических кодировок со строкой в кодировке UCS-4
 
|-
 
|-
 
| <tt>[[Libchecker:checker_eq_str_rus_ucs4_nocase|checker_eq_str_rus_ucs4_nocase]]</tt>
 
| <tt>[[Libchecker:checker_eq_str_rus_ucs4_nocase|checker_eq_str_rus_ucs4_nocase]]</tt>
| проверить совпадение строки в одной из поддерживаемых кириллических кодировок со строкой в кодировке UCS4 без учета регистра букв
+
| проверить совпадение строки в одной из поддерживаемых кириллических кодировок со строкой в кодировке UCS-4 без учета регистра букв
 
|-
 
|-
 
| <tt>[[Libchecker:checker_is_utf8_locale|checker_is_utf8_locale]]</tt>
 
| <tt>[[Libchecker:checker_is_utf8_locale|checker_is_utf8_locale]]</tt>
 
| проверить, что проверяющая программа работает в UTF-8 локали
 
| проверить, что проверяющая программа работает в UTF-8 локали
 
|}
 
|}

Revision as of 08:13, 26 August 2008

Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/Функции/Перекодирование текстовых данных

Если в задаче требуется вывести текст на русском языке, при проверке вывода возникает проблема множественности кириллических кодировок. В зависимости от операционной системы, ее настроек или среды программирования, в которой подготовленна программа, русский текст может быть представлен в одной из следующих кодировок: KOI8-R, CP1251, CP866, ISO, MAC, UTF-8.

В качестве внутренней кодировки при обработке кириллических данных в библиотеке libchecker используется кодировка UCS-4, в которой на один символ отводится 4 байта. Библиотека предоставляет функции перекодирования данных в кодировку UCS-4 и обработки.

checker_koi8r_to_ucs4 перекодировать один символ из кодировки KOI8-R в кодировку UCS-4
checker_cp866_to_ucs4 перекодировать один символ из кодировки CP866 в кодировку UCS-4
checker_cp1251_to_ucs4 перекодировать один символ из кодировки CP1251 в кодировку UCS-4
checker_koi8r_to_ucs4_buf перекодировать буфер заданного размера из кодировки KOI8-R в кодировку UCS-4
checker_cp866_to_ucs4_buf перекодировать буфер заданного размера из кодировки CP866 в кодировку UCS-4
checker_cp1251_to_ucs4_buf перекодировать буфер заданного размера из кодировки CP1251 в кодировку UCS-4
checker_koi8r_to_ucs4_str перекодировать строку из кодировки KOI8-R в кодировку UCS-4
checker_cp866_to_ucs4_str перекодировать строку из кодировки CP866 в кодировку UCS-4
checker_cp1251_to_ucs4_str перекодировать строку из кодировки CP1251 в кодировку UCS-4
checker_utf8_to_ucs4_buf перекодировать буфер заданного размера из кодировки UTF-8 в кодировку UCS-4
checker_utf8_to_ucs4_str перекодировать строку из кодировки UTF-8 в кодировку UCS-4
checker_ucs4_to_koi8r перекодировать один символ из кодировки UCS-4 в кодировку KOI8-R
checker_ucs4_to_koi8r_str перекодировать строку из кодировки UCS-4 в кодировку KOI8-R
checker_ucs4_to_utf8_size рассчитать число байт необходимых для кодирования заданной UCS-4 строки в кодировку UTF-8
checker_ucs4_to_utf8_str перекодировать строку из кодировки UCS-4 в кодировку UTF-8
checker_ucs4_tolower перевести символ в кодировке UCS-4 в нижний регистр
checker_ucs4_tolower_buf перевести буфер заданного размера в кодировке UCS-4 в нижний регистр
checker_ucs4_tolower_str перевести строку в кодировке UCS-4 в нижний регистр
checker_strcmp_ucs4 сравнить две UCS-4 строки
checker_eq_str_rus_ucs4 проверить совпадение строки в одной из поддерживаемых кириллических кодировок со строкой в кодировке UCS-4
checker_eq_str_rus_ucs4_nocase проверить совпадение строки в одной из поддерживаемых кириллических кодировок со строкой в кодировке UCS-4 без учета регистра букв
checker_is_utf8_locale проверить, что проверяющая программа работает в UTF-8 локали