Patent US5793381A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5793381A Expired / Lapsed US ⏱️ 0.0 years remaining

Unicode converter

Assignee: Apple Inc
•
Filing: 1995-09-13
•
Granted: 1998-08-11
•
Expires: 2015-09-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A character code conversion system that provides round trip fidelity, while ensuring that the resulting character codes are interchangeable with other platforms. The code conversion system is able to map a single source character or a sequence of characters to either a single target character or a sequence of target characters. With round trip fidelity, source text can be converted to target text and then back again to the original source text. The interchangability is ensured by maximizing the use of standard target characters, and by minimizing the use of private characters. The code conversion is particularly useful for converting to/from Unicode characters from/to other character sets.

Inventors

  • 👤 Peter K. Edberg
  • 👤 John I. McConnell
  • 👤 Yung-Fong Frank Tang
  • 👤 Andrew M. Daniels

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 23:49
CPC Classifications
H; H03; H03M; H03M7/00; H03M7/30; G; G06; G06F; G06F40/00; G06F40/10; G06F40/12; G06F40/126; G06F40/129; G06F40/151; G06F40/154

Claims Analysis

Total Claims: 35
Claim 1
Independent Claim 183 words
A method for converting a source string into a target string, said method comprising: (a) receiving a source string having a first character encoding; (b) sequentially dividing the source string into text elements, each text element including one or more characters of the source string, and at least one of the text elements including a plurality of characters of the source string; (c) obtaining attribute information for the text elements after or during said dividing (b); (d) looking up in a mapping table a conversion code associated with a second character encoding for each of the text elements said looking up (c) in the mapping table of the conversion code for each of the text elements includes the operations of identifying a requested variant; selecting one of a plurality of mapping tables based on the attribute information, the requested variant, and a length of the text element; and looking up the conversion code from the selected one of the mapping tables; and (e) combining the conversion codes for the text elements so as to form a target string of the second character encoding.
Claim 2
Independent Claim 183 words
A method for converting a source string into a target string, said method comprising: (a) receiving a source string having a first character encoding; (b) sequentially dividing the source string into text elements, each text element including one or more characters of the source string, and at least one of the text elements including a plurality of characters of the source string; (c) obtaining attribute information for the text elements after or during said dividing (b); (d) looking up in a mapping table a conversion code associated with a second character encoding for each of the text elements said looking up (c) in the mapping table of the conversion code for each of the text elements includes the operations of identifying a requested variant; selecting one of a plurality of mapping tables based on the attribute information, the requested variant, and a length of the text element; and looking up the conversion code from the selected one of the mapping tables; and (e) combining the conversion codes for the text elements so as to form a target string of the second character encoding.
Claim 3
Dependent Claim 43 words
A method as recited in claim 1, wherein the conversion code consists of one or more characters in the second character encoding, and wherein the attribute information obtained includes at least any two of direction, class, priority, subset, context, or symmetric swapping state.
Claim 4
Dependent Claim 37 words
A method as recited in claim 1, wherein the text elements are adjacent to one another, and wherein for each of the text elements including more than one character, the characters are adjacent in the source string.
Claim 5
Dependent Claim 55 words
A method as recited in claim 1, wherein the mapping table includes regular mappings and fallback mappings, and wherein said looking up (d) determines the conversion code for each of the text elements using the fallback mappings when the mapping table does not contain a conversion code for the text elements using the regular mappings.
Claim 6
Dependent Claim 40 words
A method as recited in claim 1, wherein each of the characters has a character class associated therewith, and wherein said dividing (b) is based at least in part on the character class of the characters within the source string.
Claim 7
Dependent Claim 85 words
A method as recited in claim 1, wherein said dividing (b) comprises: (b1) obtaining a next source character from the source string; (b2) determining whether the source character obtained should be included within a current text element or alternatively begin a new next text element; (b3) placing the source character obtained in the current text element or the new next text element in accordance with said determining (b2); and (b4) repeating (b1) through (b3) until the source string has been completely placed in text elements.
Claim 8
Dependent Claim 58 words
A method as recited in claim 6, wherein said determining (b2) comprises: (i) looking up attributes associated with the source character, the attributes including at least a class indicator; and (ii) determining whether the source character obtained should be included within the current text element or alternatively begin a new next text element based on the class indicator.
Claim 9
Dependent Claim 90 words
A method as recited in claim 6, wherein said determining (b2) comprises: (i) looking up attributes associated with the source character, the attributes including at least a class indicator; (ii) providing a state machine having a plurality of states, the state machine being used to determining whether the source character obtained should be included within the current text element or alternatively begin a new next text element based on the class indicator and a current state of the state machine; and (iii) updating the current state of the state machine.
Claim 10
Dependent Claim 24 words
A method as recited in claim 1, wherein one of the first character encoding and the second character encoding conforms to The Unicode Standard.
Claim 11
Dependent Claim 54 words
A method as recited in claim 1, wherein said combining (e) comprises (e1) determining a target character size for the second character encodings; and (e2) forming the target string by copying the conversion codes for the text elements which have been looked up to the target string in units of the target character size.
Claim 12
Dependent Claim 22 words
A method as recited in claim 10, wherein the conversion code looked up (d) specifies an offset to an indirect encoding sequence.
Claim 13
Dependent Claim 43 words
A method as recited in claim 1, wherein said method further comprises: (f) reordering, after said dividing (b) but prior to said look up (d), certain characters with each of the text elements if the certain characters are present in the text elements.
Claim 14
Dependent Claim 21 words
A method as recited in claim 12, wherein said reordering (f) is preferably performed using weighting values for different character classes.
Claim 15
Dependent Claim 182 words
A code conversion system for converting a source string to a target string, said system comprising: a converter for controlling the conversion of the source string having a first character encoding into the target string having a second character encoding; a scanner, operatively connected to said converter, for dividing the source string into text elements, each text element including one or more characters of the source string, and at least one of the text elements including a plurality of characters of the source string; a mapping table for storing target encodings for text elements of the source encoding, said mapping table includes a plurality of mapping portions, each of the mapping portions stores the target encodings for text elements of a different length, and an appropriate one of the mapping portions is utilized for each of the text elements defending on the lengths of the text elements; and a lookup handler, operatively connected to said converter and said mapping table, for looking up in said mapping table a conversion code associated with a second character encoding for each of the text elements.
Claim 16
Dependent Claim 182 words
A code conversion system for converting a source string to a target string, said system comprising: a converter for controlling the conversion of the source string having a first character encoding into the target string having a second character encoding; a scanner, operatively connected to said converter, for dividing the source string into text elements, each text element including one or more characters of the source string, and at least one of the text elements including a plurality of characters of the source string; a mapping table for storing target encodings for text elements of the source encoding, said mapping table includes a plurality of mapping portions, each of the mapping portions stores the target encodings for text elements of a different length, and an appropriate one of the mapping portions is utilized for each of the text elements defending on the lengths of the text elements; and a lookup handler, operatively connected to said converter and said mapping table, for looking up in said mapping table a conversion code associated with a second character encoding for each of the text elements.
Claim 17
Dependent Claim 81 words
A code conversion system as recited in claim 14, wherein said system further comprises: a fallback handler, operatively connected to said converter, for providing fallback conversion codes in certain cases, when said lookup handler is unable to provide a conversion code for one or more text elements, the fallback conversion codes contain one or more code points in the target encoding that are not exactly equivalent to the characters in the text element but have a graphical appearance that is similar.
Claim 18
Dependent Claim 46 words
A code conversion system as recited in claim 15, wherein said system further comprises: scanner table means for assisting said scanner in determining whether individual characters in the input string should be included within a current text element or alternatively begin a new next text element.
Claim 19
Dependent Claim 51 words
A code conversion system as recited in claim 14, wherein said system further comprises: a scanner table, operatively connected to said scanner, for assisting said scanner in determining whether individual characters in the input string should be included within a current text element or alternatively begin a new next text element.
Claim 20
Dependent Claim 39 words
A code conversion table as recited in claim 17, wherein the characters of the source string have a character class associated therewith, and wherein said scanner table comprises an array of elements, said array being indexed by character class.
Claim 21
Dependent Claim 19 words
A code conversion system as recited in claim 14, wherein the characters in the source string are Unicode characters.
Claim 22
Dependent Claim 19 words
A code conversion system as recited in claim 14, wherein the characters in the target string are Unicode characters.
Claim 23
Dependent Claim 230 words
A computer readable medium containing program instructions for converting a source string into a target string, said computer readable medium comprising: computer readable code configured to cause a computer to effect receiving a source string having a first character encoding; computer readable code configured to cause a computer to effect dividing the source string into text elements, each text element including one or more characters of the source string, and at least one of the text elements including a plurality of characters of the source string; computer readable code configured to cause a computer to effect obtaining attribute information for the text elements; computer readable code configured to cause a computer to effect looking up in a conversion code associated with a second character encoding for each of the text elements, said computer readable code operates to effect looking up in the mapping table the conversion code associated with the second character encoding for each of the text elements by operating to select at least one of a plurality of mapping tables based on the attribute information and a length of the text element, and then looking up the conversion code from the selected one of the mapping tables; and computer readable code configured to cause a computer to effect combining the conversion codes for the text elements so as to form a target string of the second character encoding.
Claim 24
Dependent Claim 230 words
A computer readable medium containing program instructions for converting a source string into a target string, said computer readable medium comprising: computer readable code configured to cause a computer to effect receiving a source string having a first character encoding; computer readable code configured to cause a computer to effect dividing the source string into text elements, each text element including one or more characters of the source string, and at least one of the text elements including a plurality of characters of the source string; computer readable code configured to cause a computer to effect obtaining attribute information for the text elements; computer readable code configured to cause a computer to effect looking up in a conversion code associated with a second character encoding for each of the text elements, said computer readable code operates to effect looking up in the mapping table the conversion code associated with the second character encoding for each of the text elements by operating to select at least one of a plurality of mapping tables based on the attribute information and a length of the text element, and then looking up the conversion code from the selected one of the mapping tables; and computer readable code configured to cause a computer to effect combining the conversion codes for the text elements so as to form a target string of the second character encoding.
Claim 25
Independent Claim 178 words
A method for converting a source string into a target string, said method comprising: (a) receiving a source string having a first character encoding; (b) sequentially dividing the source string into text elements, each text element including one or more characters of the source string, and at least one of the text elements including a plurality of characters of the source string; (c) obtaining attribute information for the text elements after or during said dividing (b) (d) looking up in a mapping table a conversion code associated with a second character encoding for each of the text elements, said looking up (d) in the mapping table of the conversion code for each of the text elements includes the operations of (d1) selecting one of a plurality of mapping tables based on the attribute information and a length of the text element, and (d2) looking up the conversion code from the selected one of the mapping tables; and (e) combining the conversion codes for the text elements so as to form a target string of the second character encoding.
Claim 26
Independent Claim 178 words
A method for converting a source string into a target string, said method comprising: (a) receiving a source string having a first character encoding; (b) sequentially dividing the source string into text elements, each text element including one or more characters of the source string, and at least one of the text elements including a plurality of characters of the source string; (c) obtaining attribute information for the text elements after or during said dividing (b) (d) looking up in a mapping table a conversion code associated with a second character encoding for each of the text elements, said looking up (d) in the mapping table of the conversion code for each of the text elements includes the operations of (d1) selecting one of a plurality of mapping tables based on the attribute information and a length of the text element, and (d2) looking up the conversion code from the selected one of the mapping tables; and (e) combining the conversion codes for the text elements so as to form a target string of the second character encoding.
Claim 27
Dependent Claim 85 words
A method as recited in claim 22, wherein said dividing (b) comprises: (b1) obtaining a next source character from the source string; (b2) determining whether the source character obtained should be included within a current text element or alternatively begin a new next text element; (b3) placing the source character obtained in the current text element or the new next text element in accordance with said determining (b2); and (b4) repeating (b1) through (b3) until the source string has been completely placed in text elements.
Claim 28
Dependent Claim 93 words
A method as recited in claim 23, wherein said determining (b2) comprises: (i) looking up the attribute information associated with the source character, the attribute information including at least a class indicator; (ii) providing a state machine having a plurality of states, the state machine being used to determining whether the source character obtained should be included within the current text element or alternatively begin a new next text element based on the class indicator and a current state of the state machine; and (iii) updating the current state of the state machine.
Claim 29
Dependent Claim 43 words
A method as recited in claim 24, wherein said method further comprises: (f) reordering, after said dividing (b) but prior to said look up (c), certain characters with each of the text elements if the certain characters are present in the text elements.
Claim 30
Dependent Claim 50 words
A code conversion system as recited in claim 14, wherein said mapping table includes more than one target encodings for certain text elements of the source encoding, and a particular one of the target encodings for the certain text elements is obtained by attributes determined for the certain text elements.
Claim 31
Dependent Claim 70 words
A code conversion system as recited in claim 14, wherein said code conversion system further comprises: a scanner table that stores scan information; and an attributes table that stores attribute information for the characters in the source string, and wherein said scanner operates to divide the source string into text elements in accordance with the scan information stored in said scanner table and attribute information stored in said attributes table.
Claim 32
Dependent Claim 71 words
A method as recited in claim 22, wherein said looking up (d) in the mapping table of the conversion code for each of the text elements further includes the operation of: (d3) identifying a requested variant prior to said selecting (d1), and wherein said selecting (d2) of one of the plurality of mapping tables is achieved based on the attribute information, the requested valiant, and the length of the text element.
Claim 33
Dependent Claim 85 words
A computer readable medium as recited in claim 21, wherein said computer readable code configured to cause a computer to effect looking up in a conversion code associated with a second character encoding further operates to effect the looking up by identifying a requested variant prior to the selection of the one of the mapping tables, and wherein the selection of one of the plurality of mapping tables is achieved based on the attribute information, the requested variant, and the length of the text element.
Claim 34
Dependent Claim 45 words
A computer readable medium as recited in claim 29, wherein said computer readable medium further comprises: computer readable code configured to cause a computer to effect reordering certain characters with each of the text elements if the certain characters are not in a canonical order.
Claim 35
Dependent Claim 29 words
A computer readable medium as recited in claim 21, wherein the attribute information obtained includes at least any two of direction, class, priority, subset, context, or symmetric swapping state.

References Cited (Backward Citations)

US5091950A Cited
US5170445A Cited
US5477451A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-08-10 2002-02-09 2002-08-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-08-10 2006-02-09 2006-08-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-08-10 2010-02-09 2010-08-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag