KR970003322B1 - 데이타의 다중-바이트 표현 변환 방법 - Google Patents

데이타의 다중-바이트 표현 변환 방법 Download PDF

Info

Publication number
KR970003322B1
KR970003322B1 KR1019930002138A KR930002138A KR970003322B1 KR 970003322 B1 KR970003322 B1 KR 970003322B1 KR 1019930002138 A KR1019930002138 A KR 1019930002138A KR 930002138 A KR930002138 A KR 930002138A KR 970003322 B1 KR970003322 B1 KR 970003322B1
Authority
KR
South Korea
Prior art keywords
byte
code
value
character
data
Prior art date
Application number
KR1019930002138A
Other languages
English (en)
Other versions
KR930018398A (ko
Inventor
피. 앤드류스 그레그
창밍왕
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
죤 디. 크레인
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션, 죤 디. 크레인 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR930018398A publication Critical patent/KR930018398A/ko
Application granted granted Critical
Publication of KR970003322B1 publication Critical patent/KR970003322B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

내용없음.

Description

데이타의 다중-바이트 표현 변환 방법
제1도는 분산 데이타 처리 시스템의 블록도.
제2도는 이중-바이트 문자에 적용된 본 발명의 변환 방법을 예시하는 흐름도.
제3도는 다중-바이트 문자 스트링의 제1바이트에 대한 확인 배열의 데이타 구조를 도시한 도면.
제4도는 다중-바이트 문자 스트링의 제2바이트에 대한 확인 배열의 데이타 구조를 도시한 도면.
제5도는 변환 배열에 대한 데이타 구조를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
8 : 데이타 처리 시스템 10 : 퍼스널 컴퓨터 시스템
12 : 중형 컴퓨터 시스템 14, 32 : 비디오 디스플레이 장치
15, 33 : 상자 16, 34 : 키보드
18, 28 : 중앙처리장치(CPU)
20, 22, 38, 40 : 직접엑세스기억장치(DASD)
24, 36 : 시스템 메모리 26, 30 : 통신 어댑터
27 : 채널 링크
43 : 아이비엠 피씨 코드 더블-바이트 문자 스트링을 아이비엠 호스트 코드-바이트 문자 스트링으로 변환하는 프로그램
본 발명은 데이타 처리 시스템들간의 정보 교환에 관한 것으로, 특히, N-바이트 스파스 데이타 세트(N-byte sparse data set)의 스트링들(Strings)을 또다른 스파스 데이타 세트의 상이한 N-바이트 스트링들로 변환하는 것에 관한 것이다. 특히, 본 발명은 아이비엠 호스트 코드(IBM Host Code)와 아이비엠 피씨코드(IBM PC Code) 사이에서와 같은, 어떠한 16-비트 데이타 코드의 이중-바이트 문자 스트링스(double-byte character string)도 또다른 16-비트 데이타 코드로 변환하는 방법에 관한 것이다.
데이타 처리 시스템간에 이루어지는 정보 교환은 교환된 심볼 코드에 대해 의미를 적용함에 있어 일관성을 요구한다. 몇몇 교환 코드들이 공용으로 사용되고 있어 이들 코드들간의 변환의 필요성이 자주 일어난다. 예를 들면, 교환 코드의 하나인, 아이비엠 피씨 코드는 아이비엠 피에스투 모델 55(IBM PS/2 Model 55\) 개인용 컴퓨터에 사용된다. 아이비엠 코드는 ASCII(American National Standard Code for Information Interchange)의 확장형으로 일본어 문자를 다룰 수 있다. 또 다른 교환 코드인 아이비엠 호스트 코드는, 아이비엠 즉, 인터내셔날 비지니스 머신즈 코포레이션이 제조한 다양한 중형급 시스템이나 대형 시스템에서 사용된다. 아이비엠 호스트 코드는 EBCDIC(Extended Binary-Coded Decimal Interchange Code)의 유사한 확장형이다.
정보 교환 코드는 국어들(national languages)에 대한 문자 세트들(character sets)을 규정한다. 대부분의 언어에서 필요한 심볼들이나 문자는 숫적으로 비교적 소수이다. 예를 들면, 영어에서는 로마 문자 26자만 사용한다. 각각의 로마문자는 대문자 소문자를 가지므로 52개의 심볼을 필요로 한다. 독일어에서는 구분발음부호들(diacritics)을 받는 3개 모음(대문자와 소문자 둘다)과 그리스어의 소문자 베타를 허용하므로 부가적으로 단지 7개의 심볼을 더 필요로 한다. 이와 유사하게, 적은수의 심볼들을 추가하면, 프랑스어, 네덜란드어, 스페인어, 이태리어, 포르투칼어 그리고 스칸디나비야어가 모두 하나의 코드 세트(one code set)로서 작성(written)될 수 있다.
10개의 숫자(digits)로 모든 수들을 표현할 수 있다. 다양한 국제 화폐 심볼(예컨대, $, £, ¥)과 같은, 다른 특수 심볼과 다양한 구두법 심볼들(puctuation symbols)에 대한 여유(room)가 존재한다. 이들 문자 모두를 표현하는데 각각 8비트(bits)씩 256바이트를 제공하면 충분하다는 것이 확인되었다. 두 세트(two sets)의 표준 교환 코드가 각각의 단일-바이트 언어(single-bytes languages)에 대해 존재한다. 이들은 ASCII와 EBCDIC을 포함한다. 단일 바이트 언어에 대해 하나의 교환 코드에서 다른 교환 코드로 변환하려면 단일의 256바이트(single 256 byte) 변환 테이블이 필요하다.
대부분의 언어와 달리, 중국어, 일본어, 한국어는 256개 이상의 문자들을 가진다. 전통적인 중국 문어는 13,000자 이상의 표의문자(ideographs)를 이용한다. 일본어는 3,000 내지 8,000자 표의문자(칸지문자)와 숫자, 히라가나, 카타카나 문자에 대한 수백개의 다른 심볼들을 이용한다. 또한 일본어, 한국어, 전통적인 중국어(Traditional Chiness) 그리고 단순화시킨 중국어(Simplified Chiness)에 대한 표의문자들(ideograph set)이 그 내용과 크기(size)상 상이하다는 점에서 교환 코드간의 변환은 더욱 복잡해 진다. 이와 같은 큰 문자베이스들(bases)을 처리하기 위해, 이들 언어에 대한 교환코드는 각각의 문자(character)에 대해서 16비트의 이중-바이트(double-byte)를 사용한다. 이것은 약 65,536문자(1216)를 표현할 수 있다. 이중-바이트(double-byte) 문자 세트들은 여러가지 다른 방식으로 구성된다.
일본어인 경우, 4개의 다른 문자 세트(character sets)가 현재 다양한 컴퓨터에서 사용되고 있다. 한국어는 5가지 세트를 사용하고 전통 중국어는 두가지 세트를 사용한다. 예를 들면, 크다("LARGE")를 뜻하는 칸지문자(kanji symbol)는 아이비엠 호스트 코드에서 '455B', 아이비엠 피씨 코드에서는 '91E5', 칸지 할당 번호 코드(Kanji Assigned Number Code)에서는 '1371' 그리고 일본 공업 규격(JIS) 코드에서는 '3471'이다. 이들 숫자는 모두 16진수로 표현된다.
이론상, 단일 바이트(single-byte) 교환 코드간의 변환에 사용된 것과 유사한 방법이, 이중 바이트 변환에서도 사용될 수 있다. 불행하게도, 응용에 있어, 이와 같은 접근은 단일 바이트 언어에 대한 것보다 훨씬 많은 메모리를 차지한다. 단일-바이트 언어에 대한 변환 표는 길이가 단지 256바이트이다. 단지 하나의 이중-바이트 언어에 대한 변환 테이블 일지라도 길이가 128킬로바이트(kbyte)를 초과한다.
이중-바이트 문자 세트(DBCS) 변환에 대한 종래의 방법들은 개개의 이중-바이트 문자(individual double-byte characters)에 대한 일련의 언어종속 비교를 활용하여 그들의 유효성을 판단한다. 이러한 단계들은 본질적으로 일련의 범위비교(range comparison)이다. 일단 문자의 유효성이 판단되면, 언어 종속 방법(language dependent method)이 사용되어 그 문자(character)에 대한 이중-바이트의 256 엔트리 x 256 엔트리 변환 배열으로의 배열 인덱스들(array indices)을 도출한다. 그런 다음 배열 인덱스들이 이용되어 번역 배열(translation array)로부터 알맞은 문자를 복원한다.
비록 교환코드 간의 변환을 위한 것은 아니다, 우에다(Ueda) 등의 미합중국 특허 제4,701,746호는 종래 방법의 인덱스들 발생 부분과 범위 비교(range comparison)를 간소화 하는데 적용할 수 있는 방법을 개시한다. 우에다 등 특허는 16비트 신호들(code signals)을 13비트 코드 신호로 변환하는 코드 변환 장치를 개시했다. 우에다 등의 특허는 기본적으로 일련의 스파스 데이타 아이템(Sparse data items)들을 연속적인 참조(consecutive references)로 변환하는 것을 허용한다. 이러한 교시는, 일본어의 문자 세트 크기가 큼에도 불구하고 이중-바이트 문자(double-byte character)의 완전한 테이블에 대해 거의 128kbyte까지의 메모리 공간이 필요하지 않다는 점을 이용하였다. 그러나, 우에다 등의 특허는 최대 8,000개의 데이타 아이템만을 처리할 수 있다. 따라서, 우에다 등의 특허는 전통 중국어나 단순화된 중국어에 적용될 수 없다. 또한 우에다 등의 특허는 다중 바이트 시스템에 대해 일반적으로 적용되지는 않는다. 우에다 등의 특허는 본 발명과 비교해서 제한된 에러 체크 능력을 제공한다.
따라서, 본 발명의 목적은 데이타 처리 시스템간의 정보 교환에 대한 방법을 제공하는 것이다. 본 발명의 다른 목적은 이중-바이트 문자 스트링들(DBCS)을 하나의 교환 코드에서 다른 교환 코드로 변환하는 방법을 제공하는 것이다.
본 발명의 또다른 목적은 아이비엠 피씨 코드와 아이비엠 호스트 코드사이에서, 이중-바이트 문자 스트링들을 변환하는 방법을 제공하는 것이다.
본 발명의 또다른 목적은 다수의 국어들에 대해, 이중-바이트 문자 스트링들로 표현되는 문자들을 변환하는 단일 방법(single method)을 제공하는 것이다.
상기 목적은 이하에서 기술된 바와 같이 성취된다. 제1교환 코드로된 문자(character)의 이중-바이트 표현을 이중-바이트 변환 배열로부터 복원된 제2교환 코드로된 문자의 이중-바이트 표현을 변환하는 것은, 제1코드로된 문자 표현의 제1 및 제2바이트로부터 상기 배열 내의 행 및 열 인덱스들을 생성함으로써 제공된다. 이러한 목적을 위하여 제1교환 코드 문자에 대한 이중 바이트 표현의 제1바이트와 제2바이트 각각에 대하여 제1 및 제2국어 확인배열(vertification arrays)이 제공된다. 제1바이트는 제1국어 확인 배열에 대하여 직교되어 제1값을 복귀된다. 제2바이트는 제2국어 확인 배열과 비교되어 제2값을 복귀한다. 그후, 제1 및 제2값이 제1 및 제2범위한계(range limite)에 대하여 각각 평가되고, 부합된다면, 복귀된 값을 국가 이중-바이트 번역 테이블로의 인덱스들로서 유효화 한다.
제1범위한계내의 제1값의 복귀와 제2범위제한 내의 제2값의 복귀에 응답하여, 제1 및 제2값들은 이중 바이트 변환 테이블에 대한 인덱스 값으로서 사용된다. 그후, 그 인덱스 값들이 사용되어 제2교환 코드 문자의 2중 바이트 표현을 복원한다. 그렇지 않다면, 제2바이트에 대한 평가 단계로부터 범위한계를 초과한 값의 복귀에 응답하여, 무효 표시가 복귀된다. 제1바이트에 대한 평가 단계로부터 범위한계를 초과하는 값의 복귀와 제2바이트에 대한 범위한계내값의 복귀에 응답하여, 제1바이트에 대한 복귀된 값이 무효 문자값(invalid character value), 특별처리 문자값(special processing character value) 및 예약 문자값(reserved character value)에 대하여 비교되고 번역 프로세서의 출력으로서 상술한 값들 중 하나를 복귀시킨다.
상술한 목적뿐 아니라 본 발명의 부가적인 목적들, 특징들과 장점들이 다음의 상세한 설명으로부터 명백하게 될 것이다.
본 발명의 특징으로 사료되는 신규한 특징들은 청구범위에 제시된다. 그러나, 바람직한 실시예, 목적, 장점들뿐만 아니라 본 발명 자체도 첨부도면과 함께 예시적인 실시 태양의 상세한 설명을 참조함으로써 가장 잘 이해될 것이다.
이하 도면을, 특히 제1도를 참조하면, 본 발명에 따른 시스템과 방법을 수행하기 위해 이용될 수 있는 분산 데이타 처리 시스템(distributed data processing system)(8)의 블록도가 도시되어 있다. 도시된 바와 같이 분산 데이타 처리 시스템(8)은 퍼스널 컴퓨터 시스템(10)과 중형 컴퓨터 시스템(12)을 포함하며, 퍼스널 컴퓨터 시스템(10)은 바람직하게는 인터내셔널 비즈니스 머신즈 코포레이션으로부터 입수할 수 있는 PS 55개인용 컴퓨터로 제공되며, 중형 컴퓨터 시스템(12) 역시 바람직하게는 인터내셔널 비즈니스 머신즈 코포레이션으로부터 입수할 수 있는 AS/400이다.
퍼스널 컴퓨터 시스템(10)에 대한 사용자 인터페이스(user interface)는 비디오 디스플레이 장치(14)(video display device)와 키보드(16)를 포함한다. 크다("LARGE")라는 뜻인 칸지(kanji) 문자와 이것의 확장된 ASCII나 아이비엠 피씨 코드 16진수 이중-바이트 문자 스트링 "91E5"가 비디오 디스플레이 장치(14)의 상자(15)상에 도시되어 있다.
퍼스널 컴퓨터 시스템(10)은 기능적으로 예시되어 있다. 디스플레이 장치(14)는 컴퓨터 시스템(10)내 중앙 처리장치(18)의 제어하에 있다. 키보드는 컴퓨터 시스템(10)에 사용자 입력을 제공한다. 중앙처리장치(18)에 역시 엑세스할 수 있는 것에는 직접엑세스기억장치(direct access storage devvices)(20) 및 (22)와 시스템 메모리(24)가 있다. 통신 어댑터(communications)(26)는 컴퓨터 시스템(10)과 (12)간의 네트워크를 통하는 채널 링크(27)에 인터페이스를 제공한다.
컴퓨터 시스템(12)은 컴퓨터 시스템(10)과 같은 네트워크 터미날들(Network terminals)을 위하여 작동하는 호스트 장치(host dvice)로서 구동한다. 컴퓨터 시스템(12)은 통신 어댑터(30)를 통하여 통신 링크(communication link)(27)의 데이타를 수신하는 중앙처리장치(28)를 포함한다. 중앙처리장치(28)은 디스플레이 장치(32)를 제어하고 키보드(34)를 통해 사용자의 입력을 수신한다. 디스플레이 장치(32) 상의 상자(33)내에 디스플레이된 글자는 크다(LARGE)라는 뜻이 칸지(kanji) 문자와 그것의 아이비엠 호스트 코드 이중-바이트 문자 스트링 "455B"(16진수)이다. 컴퓨터 시스템(12)은 시스템 메모리(36)와 직접엑세스기억장치(DASD)(38)과 (40)을 더 포함한다.
컴퓨터 시스템(10)과 컴퓨터 시스템(12) 간에 전송된 문자 스트링스들은, 스트링들로 표시된 정보가 상실되지 않거나 완전히 잘못 전달되지 않도록, 교환 코드들 간에 변환되어야 한다. 크다("LARGE")라는 뜻인 칸지 문자에 대한 문자 스트링의 변환이 고려될 것이다. 바람직한 실시예에서, 그와 같은 변환은 네트워크의 터미널 내에서, 예컨대 퍼스널 컴퓨터(10) 내에서 일어난다. 컴퓨터 시스템(10)의 시스템 메모리(24)내에는 아이비엠 피씨 코드 이중-바이트 문자 스트링들을 아이비엠 호스트 코드 이중-바이트 문자 스트링으로 변환시키기 위한 프로그램(43)과 이 변환 프로그램에 사용되는 제1바이트 확인 테이블(42), 제2바이트 확인 테이블(44) 및 변환 테이블(46)이 상주된다.
제2도에는 본 발명에 따른 변환 방법을 나타내는 흐름도가 도시되어 있다. 변환 과정은 원시교환 코드의 이중-바이트 문자 스트링으로 코드화된 문자를 수신함으로써 시작된다. 목적코드(target code)의 식별(identification)은 수신 기계(destination machine)의 식별에 의해 결정된다. 스텝(50)에서 두개의 변수, 즉 Index 1과 Index 2가 정의되고 원시 교환 코드에서 목적 교환 코드로의 변환을 위한 특별 함수에 대한 트리거 값(trigger values), 범위 한계(ranger limits), 적절한 테이블들이 직접억세스저장장치(20)이나 (22)에서 검출된 후, 시스템 메모리(24) 내에 배치된다. 비록 한 프로그램이 모든 언어와 모든 교환 코드마다 독특하다. 트리거 값은 각각 256바이트 두개의 확인 테이블 각각에 유효한 인덱스들에 대한 최대 16진수값(범위한계)과 동일하거나, 초과한다. 하기의 테이블(1-4)은 일본 문자를 아이비엠 피씨 코드에서 아이비엠 호스트 코드를 번역하는데 사용되는 예시적 테이블이다.
테이블 1은 대다수의 모든 트리거 값이 최소한 범위 한계값 "OXFO"(16진수)와 동일하거나 초과하는 모든 다수의 트리거 값들을 상기 루틴(routine)에 제공한다.
[테이블 1]
CONST
_i_="FE"hex(*무효*)
_r_="FE"hex(*예약*)
_s_="FE"hex(*특별*)
256바이트로 구성되는 제2바이트 확인 테이블은 하나 또는 두개의 확인 함수(function)를 수행하는데 사용된다. 스텝(52)은 제2바이트 확인 테이블을 이용하는 확인 함수의 해결(solution)을 보여준다. 확인함수 :
(1) index2=V2(a2)
(여기서, α2는 이중-바이트 문자 스트링의 제2바이트이다)는 제2바이트를 제2바이트 확인 배열에 대한 주소로서 사용하여 Index 2에 하나의 값을 복귀하는 테이블 조사 연산(table look up operation)이다. 한 인덱스 값이나 무효문자를 나타내는 트리거 값이 연산으로부터 복귀된다. 제2바이트에 대한 전형적인 확인 테이블이 테이블 2에서 재생된다.
[테이블 2]
Verify2 : ARRAY〔$00. . #FF〕OF BYTE=(
스텝(54)에서 Index 2의 값이 배열의 범위한계와 비교되어 유효한 문자 입력이 수신되었는지 판단한다. 만일 트리거 값이 Index 2에 대해 복귀되었으면, 그 Index 2는 범위한계를 초과하며 무효 표시가 스텝(56)에서 주어진다. 이 특정문자에 관계하는 연산은 더 이상 취해지지 않는다. 만일 Index 2의 값이 유효한 문자를 나타내면, 스텝(58)에서 확인 함수 V1이 Index 1에 대해서 해결(solve)된다.
테이블 3은 VER1FY1이라 명칭되며 입력 변수로서 이중-바이트 문자 스트링으로부터 8비트의 제1바이트를 취하는 확인 배열이다. 확인 함수 :
(2) Index 1=V1(a1)
(여기서, a1은 이중-바이트 문자열의 제1바이트이다)은 제1바이트를 바이트 확인 배열에 대한 주소로서 사용하여 Index 1에 하나의 값을 복귀하는 테이블 검색 연산이다. a1에 대한 확인 테이블은 a2에 대한 테이블과는 어느 정도 상이하다. 만약 _i_(16진수로 "FF")가 테이블로부터 복귀되면, 전체 이중-바이트 문자 스트링들은 무효이다. 만일 테이블이 _r_(16진수로"FE")를 복귀하면, 그 문자는 예약된 것이고, 이는 이 문자가 장래 유효할 수도 있으나 현재는 유효하지 아니함을 나타낸다. 만일 테이블이 _s_(16진수로 "FD")를 복귀하면, 그 문자는 특별 처리(Special Processing)가 필요함을 나타낸다. "특별처리"는 본 발명 대신에 간단히 변환될 수 있는 중국문자의 어떤 영역에 대한 변환이나 사용자 정의 문자(user defined character)에 대한 변환과 같이, 종래의 잘 알려진 변환을 수행하기 위해 사용될 수도 있다.
[테이블 3]
Verify1 : ARRAY〔$00. . $FF〕 OF BYTE=(
스텝(60)에서, Index 1에 대해 복귀된 값이 배열에 대한 범위한계보다 적은지를 판단한다. 만일 범위한계보다 적지 안으면, 다음 스텝(64)이 실행되어, 무효한 문자를 나타내는 트리거 값과 Index 1값을 비교한다. 만일 Index 1이 무효 문자들에 대한 트리거 값과 동일하면, 에러 신호를 발생시키는 스텝(66)이 수행된다. 이후, 이 문자에 대한 더 이상의 연산은 실행되지 않는다.
스텝(64)에서 만일 Index 1은 예약값을 나타내는 트리거 값과 상이하다면 "아니오" 분기(branch)로 진행한다. 스텝(68)에서 Index 1은 예약값을 나타내는 트리거 값과 비교되어 사용자 프로그램 문자와 같은 예약없이 문자로서 수신되었는지(스텝 70) 판단된다. 수신되지 않았다면, 특별처리 표시(special Processing indication)가 가정된다. 스텝(72), 그리고 나서 그런 특별 함수 문자의 복귀와 관련된 연산이 행해진다.
스텝(60)에서의 "예" 분기(branch)는 실제 변환연산인 스텝(74)의 연산을 행한다. Index 1과 Index 2는 이중-바이트 변환배열에 대한 행 및 열의 인덱스들을 제공함으로써 새로운 변환 코드내에 원래 문자에 대한 문자 스트링들이 복귀되도록 한다. 테이블 4는 이러한 배열의 일부를 재현시킨 것이다. 배열내 맨앞에 "$" 부호가 붙고 4개의 문자를 가진 제116진수는 목적(target) 아이비엠 호스트 코드이다. 그리고 괄호안의 제216진수 엔트리들(entries)은 아이비엠 피씨 코드이며 배열이 일부는 아니다. 두번째 엔트리들은 아이비엠 피씨 코드로 역 변환하는데 사용된다. 변환 함수 실행으로부터의 복귀는 새로운 이중-바이트 문자열 :
(3) RESULT=t(Index 1, Index 2)을 생성한다.
[테이블 4]
TABLE : ARRAY〔#00. . $29, $00. . $BB〕OF WORD=( (
#4040(*8140*), $4344(*8141*), . . .
$FDFF(*8240*), $FDFF(*8241*), . . .
$4347(*8340*), $4381(*8341*), . . .
$41C0(*8440*), $41C1(*8441*), . . .
. . .
. . .
. . .
$4844(*9140*), . . . $455B(*91E5*)
, . . .
. . .
. . .
. . .
테이블 5는 전술한 과정의 의사-코드 프로그램(pseudo-code program)이다.
[테이블 5]
fyunction Translate(c : Word) : Word;
Var
Index 1, Index 2 : BYTE ;
begin
Index 2 : Verify〔Byte2(c)〕;
if Index 2 < $ F0 then
begin
Index 1 = Verify〔Bytel(c)〕;
if Index 1 < $F0 then
Translate : = Table〔Index 1, Index 2〕
else
case Index of
_i_ : Translate : = Invalid;
_r_ : Translate : = Reserved;
_s_ : Translate : = Special(c);
end
end
else
Translte : = Invalid
end ;
제3도에서 제5도까지 참조하면, "크다(Large)"에 대한 칸지 문자의 문자스트링을 컴퓨터 시스템(10)용 교환코드에서 컴퓨터 시스템(12)용 교환코드내의 문자 스트링으로 변환하기 위한 데이타 구조가 도시되어 있다.
도시를 간단히 하기 위하여, 테이블 2에 테이블 4까지에 대응하는 도면내의 엔트리들은 16진수법(hexadecimal notation)이 아닌 10진수법(decimal notatio)으로 표현된다. 상술한 바와 같이, 상기 칸지 문자에 대한 16진수 이중-바이트 문자 스트링은 "91E5"이다. 각각의 바이트는 분리되어 처리된다. 따라서, "91"(16진수)와 " E5"(16진수)는 확인함수들에 대해서 독립변수(independent variables)로 제공된다. "91"(16진수)와 "E5"(16진수)에 대한 10진수는 각각 145와 229이다.
제1바이트에 대한 확인 함수는 데이타 구조(102)에 의해 결정된다. 16진수 "0"에서 "FF"까지는 10진수 0에서 225까지 변환된다. 0에서 255까지의 각 엔트리들은 "i", "r", "s"나 "0"에서 "41"까지의 값에 대응한다. 변환 배열에 대한 인덱스들인 "0"에서 "41"까지에 대해 단지 하나의 대응만이 허용된다. 10진수 표현으로 변환된 이 이중 바이트 문자 스트링의 제1바이트는 145이다. 그래프에서 145에 대응하는 것은 블럭(104)에 도시된 바와 같이 10진수 13이다. 이 수가 제1확인 함수에 대한 해답으로 복귀된다.
제2바이트에 대한 확인 함수는 데이타 구조(106)에 의해 결정된다. 16진수 "0"부터 "FF"까지는 10진수 0부터 255까지로 변환된다. 0부터 255까지의 각 엔트리들은 "i"나 혹은 "0"부터 "187"까지의 값에 대응한다. "0"부터 "187"까지는 역시 데이타 구조에서 각각 한번씩만 나타난다. 10진수로 변환된 이 이중-바이트 문자 스트링의 제2바이트는 229이다. 그래프에서 229와 대응하는 것은 블럭(108)에 의해 지적된 10진수 164이며, 이 수가 제2확인 함수에 대한 해답으로 복귀된다.
매트릭스(110)는 일본 문자에 대한 변환 배열이며, 유일하게(uniquely) 할당된 확인 함수 결과의 범위(range)에 대응하는 가로 188행(0에서 187까지)과 세로 42열(0에서 41까지)을 구비한다. 테이블 4와 달리, 아이비엠 호스트 코드만 도시되어 있다. 따라서, i, r, s와 다르게 제공되는 확인 함수에 대한 해답(solutions)은, 그들이 i, r, 혹은 s가 아닐 경우, 변화된 이중-바이트 문자 스트링의 행 및 열을 나타낸다. 13열(숫자 112로 표시됨)과 164행(숫자 114로 표시됨)에 공통되는 위치(116)가 요구되는 결과이며, 여기서는 16진수 "455BB"이다.
본 발명은, 한국어, 일본어, 종래의 중국어, 단순화된 중국어에 대한 교환 코드간의 문자 변환을 위하여, 유일한 국어 변환과 확인 테이블을 사용하여 수행되는 만일 프로그램을 제공한다. 또한, 연산들이 종래 방식보다 간단해졌으므로 변환을 성취하기 위한 연산시간을 감축한다. 제3도에부터 제5도까지 도시된 데이타 구조로부터 알수 있는 바와 같이, 변환과 확인 테이블은 128Kbyte 보다 훨씬 적은 메모리 공간을 요한다. 모든 칸지문자, 히라가나, 카타카나, 숫자(numeric character)를 포함하는 일본어에 대한 변환 배열 및 일방 변환(oneway conversion)에 대한 두개의 확인 배열들은 16, 304 바이트의 메모리만 차지한다.
본 발명은 이중-바이트 문자표현을 하나의 교환 코드에서 다른 교환 코드로 변환시키는 것으로도시되었으나, 변환되는 바이트는 디스플레이 가능한 문자를 나타낼 필요는 없다. 바이트는 의미있는 값들의 모든 세트로부터의 아이템들을 나타낼 수 있다. 본 발명의 장점은, 의미있는 값이 연속적이지 않을 때 발휘한다. 본 발명이 이중-바이트 값을 변환시키는 방법을 개시하는 것과 같이, 본 발명은 다중-바이트 값을 하나의 데이타 세트에서 다른 데이타 세트로 변환하는 것으로 확장될 수 있다. 이중-바이트 변환은 두개의 확인 배열 및 2차원 변환 배열을 사용한다. 3중 바이트변환 방식은 3개의 변경 배열과 3차원 변환 배열을 사용할 것이다. 이는 임의의 n-바이트 변환으로 확장될 수 있다.
본 발명은 바람직한 실시예를 참조하여 특정하게 도시되고, 기술되었지만, 본 기술분야에 통상의 지식을 가진자라면 본 발명의 정신과 범주를 벗어나지 않고 형태와 세부사항에 다양한 변경이 이루어질 수 있음을 이해할 것이다.

Claims (8)

  1. 제1교환 코드(a first interchange code) 내의 데이타의 다중-바이트 표헌(a multiple byte representation)을 제2교환 코드내의 데이타의 다중-바이트 표현으로 변환(convert)하는 방법에 있어서, 컴퓨터에 의해 수행되는 하기 단계들을 포함하는 것으로, 각각의 바이트와 연관된 별도의(seperate) 확인 배열(verification array)을 사용하여 상기 제1코드내의 데이타의 다중-바이트 표현의 각각의 바이트를 확인하는 단계와; 성공적인 상기 바이트의 확인에 응답하여 상기 연관된 확인 배열로부터 상기 제1변환 코드내의 상기 데이타의 다중-바이트 표현의 각각의 바이트에 대한 인덱스 값(index value)을 복귀(return)하는 단계와; 다차원 변환 메트릭스 (multiple dimension conversion matrix)내에서 제2교환 코드내의 데이타의 다중-바이트 표현을 액세스하기 위해 상기 복귀된 인덱스 값을 사용하는 단계를 포함하는 데이타의 다중-바이트 표현 변환 방법.
  2. 제1항에 있어서, 각각의 바이트를 확인하는 상기 단계는, 상기 바이트를 상기 바이트에 연관된 별개의 확인 배열로의 인덱스로서 사용하는 단계와; 상기 연관된 별개의 확인 배열로부터 값을 복귀하는 단계와; 상기 복귀된 값을 범위한계들(range limits)에 대하여 비교하는 단계와; 상기 범위한계에 부합하는 상기 복귀된 값에 응답하여 상기 복귀된 값을 인덱스 값으로 사용하도록 허용하는 성공적인 확인을 나타내는 단계를 포함하는 데이타의 다중-바이트 표현 변환 방법.
  3. 제2항에 있어서, 상기 데이타는 문어 국어(written national language)의 문자에 대응하는 데이타의 다중-바이트 표현 변환 방법.
  4. 제3항에 있어서, 상기 다중-바이트 표현은 제1 및 제2바이트로 구성된 데이타의 다중-바이트 표현 변환 방법.
  5. 제2항에 있어서, 범위한계 밖의 상기 복귀된 값에 응답하며, 비성공적인 확인을 나타내는 단계를 더 포함하는 데이타의 다중-바이트 표현 변환 방법.
  6. 제5항에 있어서, 비성공적인 확인에 응답하여, 상기 복귀된 값으로부터 특별한 처리(special processing)가 요구되는지를 판단하는 데이타의 다중-바이트 표현 변환 방법.
  7. 제6항에 있어서, 상기 데이타는 문어 국어의 문자에 대응하는 데이타의 다중-바이트 표현 변환 방법.
  8. 제7항에 있어서, 상기 다중-바이트 표현은 제1 및 제2바이트로 구성된 다중-바이트 표현 변환 방법.
KR1019930002138A 1992-02-18 1993-02-16 데이타의 다중-바이트 표현 변환 방법 KR970003322B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/837,228 US5309358A (en) 1992-02-18 1992-02-18 Method for interchange code conversion of multi-byte character string characters
US837,228 1992-02-18

Publications (2)

Publication Number Publication Date
KR930018398A KR930018398A (ko) 1993-09-21
KR970003322B1 true KR970003322B1 (ko) 1997-03-17

Family

ID=25273874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930002138A KR970003322B1 (ko) 1992-02-18 1993-02-16 데이타의 다중-바이트 표현 변환 방법

Country Status (5)

Country Link
US (1) US5309358A (ko)
JP (1) JP2502021B2 (ko)
KR (1) KR970003322B1 (ko)
CN (1) CN1043383C (ko)
TW (1) TW325541B (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689723A (en) * 1993-02-03 1997-11-18 International Business Machines Corp Method for allowing single-byte character set and double-byte character set fonts in a double-byte character set code page
US5784069A (en) * 1995-09-13 1998-07-21 Apple Computer, Inc. Bidirectional code converter
US5784071A (en) * 1995-09-13 1998-07-21 Apple Computer, Inc. Context-based code convertor
WO1997010556A1 (en) * 1995-09-13 1997-03-20 Apple Computer, Inc. Unicode converter
US6185729B1 (en) * 1996-03-04 2001-02-06 Sun Microsystems, Inc. Multibyte locale for single byte languages
US5802482A (en) * 1996-04-26 1998-09-01 Silicon Graphics, Inc. System and method for processing graphic language characters
US6032165A (en) * 1997-02-05 2000-02-29 International Business Machines Corporation Method and system for converting multi-byte character strings between interchange codes within a computer system
US6085199A (en) * 1997-11-24 2000-07-04 International Business Machines Corporation Method for distributing a file in a plurality of different file formats
US6560596B1 (en) * 1998-08-31 2003-05-06 Multilingual Domains Llc Multiscript database system and method
US6204782B1 (en) 1998-09-25 2001-03-20 Apple Computer, Inc. Unicode conversion into multiple encodings
GB2343024A (en) * 1998-10-22 2000-04-26 Ibm Efficient data conversion of list of strings
US6507812B1 (en) 1999-06-29 2003-01-14 International Business Machines Corporation Mock translation method, system, and program to test software translatability
US6425123B1 (en) * 1999-06-29 2002-07-23 International Business Machines Corporation System, method, and program for testing translatability of software by using english multi-byte transliteration creating double-wide characters
US6453462B1 (en) 1999-06-29 2002-09-17 International Business Machines Corporation Mock translation system, method, and program using multi-byte placeholder characters to test translatability of software that will display multi-byte languages
US6546365B1 (en) 2000-02-04 2003-04-08 International Business Machines Corporation System for national language support and automated translation table
EP1193724B1 (en) 2000-09-18 2010-02-17 Isuzu Motors Limited Eddy current retarder comprising a magnet consisting of an electromagnet and a permanent magnet
US7900143B2 (en) * 2000-12-27 2011-03-01 Intel Corporation Large character set browser
US6393445B1 (en) * 2001-01-04 2002-05-21 Institute For Information Industry System for transforming Chinese character forms in real-time between a traditional character form and a simplified character form
US7013422B2 (en) * 2001-06-15 2006-03-14 International Business Machines Corporation Noise removal in multibyte text encodings using statistical models
US7483938B2 (en) * 2001-09-27 2009-01-27 International Business Machines Corporation System for character validation and method therefor
JP4308676B2 (ja) * 2003-01-24 2009-08-05 株式会社リコー 文字列処理装置,文字列処理方法および画像形成装置
CN101079023B (zh) * 2003-01-24 2012-03-21 株式会社理光 字符串处理装置、字符串处理方法和成像装置
US20050010391A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Chinese character / Pin Yin / English translator
US20050010392A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Traditional Chinese / simplified Chinese character translator
US20050027547A1 (en) * 2003-07-31 2005-02-03 International Business Machines Corporation Chinese / Pin Yin / english dictionary
US8137105B2 (en) * 2003-07-31 2012-03-20 International Business Machines Corporation Chinese/English vocabulary learning tool
US7421385B2 (en) * 2004-04-16 2008-09-02 Taiwan Semiconductor Manufacturing Company, Ltd. Method and system of processing data that contain asian language characters
WO2006061899A1 (ja) * 2004-12-09 2006-06-15 Mitsubishi Denki Kabushiki Kaisha 文字列照合装置および文字列照合プログラム
US7516062B2 (en) * 2005-04-19 2009-04-07 International Business Machines Corporation Language converter with enhanced search capability
CN100385375C (zh) * 2005-07-15 2008-04-30 光宝科技股份有限公司 字符输入系统及其方法
JP4363533B2 (ja) * 2007-01-31 2009-11-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 文字化けを検出するための装置、方法、及びプログラム
JP6491438B2 (ja) * 2014-08-29 2019-03-27 株式会社日立社会情報サービス マイグレーション支援装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57157346A (en) * 1981-03-24 1982-09-28 Canon Inc Code converter
US4559614A (en) * 1983-07-05 1985-12-17 International Business Machines Corporation Interactive code format transform for communicating data between incompatible information processing systems
JPS6226535A (ja) * 1985-07-22 1987-02-04 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション プログラム内の変換テ−ブルの修正方法

Also Published As

Publication number Publication date
KR930018398A (ko) 1993-09-21
JPH0683571A (ja) 1994-03-25
CN1075563A (zh) 1993-08-25
US5309358A (en) 1994-05-03
CN1043383C (zh) 1999-05-12
TW325541B (en) 1998-01-21
JP2502021B2 (ja) 1996-05-29

Similar Documents

Publication Publication Date Title
KR970003322B1 (ko) 데이타의 다중-바이트 표현 변환 방법
US5682158A (en) Code converter with truncation processing
EP0294950B1 (en) A method of facilitating computer sorting
US5793381A (en) Unicode converter
US7188115B2 (en) Processing fixed-format data in a unicode environment
JP4017659B2 (ja) テキスト入力フォント・システム
US6055365A (en) Code point translation for computer text, using state tables
US20060018545A1 (en) User interface and database structure for Chinese phrasal stroke and phonetic text input
GB2057821A (en) Communication method and system
KR100584038B1 (ko) 큰 문자 세트 브라우저
JP4451908B2 (ja) ユニコード・コンバータ
US5659769A (en) Text services manager
KR20060102614A (ko) 네트워크를 통하여 접속된 폰트 서버들을 이용한 다국어번역 및 변환된 서체 이미지 데이터 제공 방법 및 시스템
JP4056199B2 (ja) マルチバイト・キャラクタ・コード化体系内で使用される単一バイト・キャラクタ処理の最適化の方法、システム、およびコンピュータ・プログラム製品
WO1997010556A1 (en) Unicode converter
WO1997010556A9 (en) Unicode converter
US6032165A (en) Method and system for converting multi-byte character strings between interchange codes within a computer system
KR100399495B1 (ko) 소스 스트링의 타겟 스트링으로의 변환 방법, 이의 컴퓨터시스템 및 프로그램 제품
CN111914513A (zh) 一种rdp窗口标题文字识别的方法及装置
US6829386B2 (en) Methods and apparatus for associating character codes with optimized character codes
CN114428658B (zh) 一种机顶盒显示缅甸文的方法
JP2629040B2 (ja) 日本語処理システム
Ong et al. Compression of Chinese text files using a multiple four-bit coding scheme
Liu et al. Distributed multilingual applications of the OSI architecture
JPH0352102B2 (ko)

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20040120

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee