Library: Character encodings, international (OMEFIO)
Include: omefio.xin

define external string source function jis-input-file
                value string filename
  exceptions-to value io-exception exceptions-to optional


This external string source function reads the file named by the "filename" argument and returns the text of that file converted from a JIS encoding to a UTF-8 encoding. The file is in JIS, but the program receives the UTF-8 conversion.


The file format is interpreted according to the Japanese Industry Standards JIS X 0201, JIS X 0208, and JIS X 0212. The file format uses escape sequences based on ISO 2022 (also known as JIS X 0202) to shift between the encodings defined by the three standards. On input, some laxity is shown in recognizing not-quite-valid escape sequences and those defined by older versions of the standards.


  ; Outputting just the ASCII characters in a JIS-encoded file.
  repeat scan jis-input-file "myfile.jis"
  match ["%0#" to "%127#"]+ => ascii-text
     output ascii-text
  match ["%128#" to "%255#"]+
     ; Ignore high-order characters (which are non-ASCII).