sjis-output-file
Full Description
swirl
Syntax
  define external output function sjis-output-file
                  value stream filename
    exceptions-to value io-exception exceptions-to optional


Purpose

This external function accepts UTF-8 encoded data and writes that data to the file named in the "filename" argument, converting the UTF-8 encoding to a Shift-JIS encoding. The program writes out UTF-8, but the file receives Shift-JIS.

Arguments:

  • "filename". This is the name of the Shift-JIS encoded file you want to write. If a zero-length "filename" is used (that is, ""), then sjis-output-file does not open a file, but writes to standard output. The zero-length file name option allows the conversion functionality to be used in an OmniMark program that is being used as a filter.
  • "exceptions-to". This optional argument indicates that errors are to be recorded in the passed "io-exception" object, and that the OmniMark program is not to be immediately terminated. There are three types of errors, categorized according to how they are handled:
    • Whenever an invalid or out-of-range encoding is found, it is converted to the ASCII DEL character (0x7F) on output. If "exceptions-to" is specified, the "io-exception" object is marked for a data encoding error, and the function continues processing.
    • If the external output function cannot be created, either because the declaration does not match what is expected or because there is not enough memory to create the source object, an error is signalled to OmniMark, and your program is terminated.
    • If "exceptions-to" is specified, then for any other type of error that occurs during memory allocation, file opening or closing, or reading or writing, the "io-exception" object is marked for the error found, and processing continues. If "exceptions-to" is not specified, an error is signalled to OmniMark and your program is terminated.

The file format is produced according to the Japanese Industry Standards JIS X 0201, JIS X 0208, and JIS X 0212, transformed using the JIS<->Shift-JIS conversion algorithms.

Example:

  ; Submitting a Shift-JIS file to the XML parser and directing the output to another.
  ; Shift-JIS file.

  do xml-parse document scan sjis-input-file "input.shj"
     set sjis-output-file "output.shj" to "%c"
  done

Copyright © OmniMark Technologies Corporation, 1988-1998.