Переход на Unicode – путь к надежной и полной поддержке языков в глобальных MDMP-системах
Все большее распространение глобальных систем вынуждает компании учиться обрабатывать данные на различных языках и платформах. Поэтому все SAP-приложения на базе SAP Web Application Server 6.20 и выше поддерживают Unicode – стандарт кодирования символов, в котором каждому символу в базе данных присваивается уникальный номер. Таким образом обеспечивается правильное представление текста и его обработка вне зависимости от конкретной платформы, программы или языка. С выходом SAP NetWeaver 7.0 прекращается поддержка старого решения Multi-Display/Multi-Processing (MDMP), и теперь единственным поддерживаемым символьным форматом будет Unicode. В этой статье рассматриваются способы перевода MDMP-систем на Unicode и описываются все предварительные и заключительные шаги, необходимые для преобразования данных.
Представьте себе, что имеется таблица SAP, содержащая текстовое поле длиной в один байт с шестнадцатеричным значением E6. Какой символ представляет данный код? Ответ зависит от языкового контекста, в котором будет использоваться определенный символ. Поддержка языков с различными наборами символов в одной системе часто является непростой задачей с точки зрения настройки и программирования и в некоторых случаях оказывается вообще невозможной. Еще в начале коммерческого использования компьютеров пользователям требовался стандартный, распространяемый на любые платформы подход к представлению символов независимо от языкового контекста, в котором этот символ используется. В 1990-х годах международным компаниям приходилось вести дела на разных языках при помощи все той же системы R/3. Эта необходимость стала еще более актуальной в XXI веке с его тенденциями к глобализации и все большим распространением систем управления бизнесом (большинство клиентов SAP в 2000 г. имело несколько систем в составе SAP Business Suite, не говоря уже о средах SAP NetWeaver).
Стандарт кодировки Unicode1, появившийся в начале 1990-х, де факто оказался экономически оправданным и эффективным решением для обеспечения поддержки различных языков в глобальных системах. Каждому символу в Unicode присваивается уникальный номер, который не зависит ни от платформы, ни от программы, ни от языка. Это позволило упорядочить представление многоязычных данных в системе, чего было невозможно добиться средствами прежних, достаточно ограниченных промежуточных решений. Основная причина этой проблемы заключалась в том, что в разных наборах символов языков (кодовых страниц) использовались одни и те же двоичные коды. Кодовая страница определяет набор двоичных или шестнадцатеричных значений, используемых для представления некоторого набора символов. В системах, в которых на один символ отводится один байт, можно определить не более 256 различных символов. Этого количества кодов достаточно для представления наборов символов всех западноевропейских языков. Однако также может потребоваться представить в системе дополнительные наборы символов, например, славянские языки, в которых используется кириллица (тот же русский, украинский или болгарский, например). Если следовать концепции выделения одного байта как для кириллицы, так и для символов западноевропейских языков, возникает дилемма: для специальных символов западных языков придется использовать те же двоичные коды, что и для славянских (MS) Windows 1252 для западноевропейских языков представлен шестнадцатеричным кодом E6, однако в кодовой странице MS Windows 1251 для кириллицы этот же код соответствует букве “ц”. Как различить эти символы в глобальной системе, поддерживающей и немецкий, и русский язык? Проблема осложняется еще и тем, что для одного набора символов может существовать несколько кодовых страниц. Это означает, что в разных системах могут присутствовать разные кодовые страницы, в которых для одного и того же набора символов будут заданы разные двоичные коды. Например, для славянских языков имеются кодовые страницы MS Windows 1251 Cyrillic, IBM PC 866 Cyrillic, ISO8859-5 Cyrillic и проч., в которых одним и тем же символам кириллицы присвоены разные двоичные коды. Таким образом, обмен данными на одном языке между различными системами с разными кодовыми страницами для этого языка еще в большей степени усложняет преобразование символов нескольких языков в Unicode. Поскольку в Unicode каждому символу, независимо от код U+00F62, а русский символ “ц” – U+0446), кодовая страница Unicode позволяет одновременно использовать эти символы в ИТ-системах.
Оформите подписку sappro и получите полный доступ к материалам SAPPRO
Оформить подпискуУ вас уже есть подписка?
Войти
Обсуждения 2
Комментарий от
Денис Ос
| 22 июля 2010, 17:15
Комментарий от
Д Д
| 25 июля 2010, 19:14