CSCONVERT function [String]

Converts strings between character sets.

Syntax
CSCONVERT( 
string-expression,
target-charset-string
[, source-charset-string ] [, options ] ])
Parameters
  • string-expression   The string.

  • target-charset-string   The destination character set. target-charset-string can be one of the following:

    • os_charset   Alias for the character set used by the operating system hosting the database server.

    • char_charset   Alias for the CHAR character set used by the database.

    • nchar_charset   Alias for the NCHAR character set used by the database.

    • any other supported character set label   You can specify any of the SQL Anywhere supported character set labels.

    • source-charset   The character set used by the original string-expression. The default is db_charset (the database character set). source-charset-string can be one of the following:

      • os_charset   Alias for the character set used by the operating system.

      • char_charset   Alias for the CHAR character set used by the database.

      • nchar_charset   Alias for the NCHAR character set used by the database.

      • any other supported character set label   You can specify any of the SQL Anywhere supported character set labels.

    • options   You can specify one of the following options:

      • Read or write a BOM   By default, the values are set to read_bom= on and write_bom=off. You can change the values to read_bom=off and write_bom=on.

Remarks

You can view the list of character sets supported by SQL Anywhere by executing the following command:

dbinit -le

For more information about the character set labels you can use with this function, see Supported character sets.

See also
Standards and compatibility
  • SQL/2003   Vendor extension.

Examples

This fragment converts the mytext column from the Traditional Chinese character set to the Simplified Chinese character set:

SELECT CSCONVERT( mytext, 'cp936', 'cp950' )
FROM mytable;

This fragment converts the mytext column from the database character set to the Simplified Chinese character set:

SELECT CSCONVERT( mytext, 'cp936' )
FROM mytable;

If a file name is stored in the database, it is stored in the database character set. If the server is going to read from or write to a file whose name is stored in a database (for example, in an external stored procedure), the file name must be explicitly converted to the operating system character set before the file can be accessed. File names stored in the database and retrieved by the client are converted automatically to the client character set, so explicit conversion is not necessary.

This fragment converts the value in the filename column from the database character set to the operating system character set:

SELECT CSCONVERT( filename, 'os_charset' )
FROM mytable;

A table contains a list of file names. An external stored procedure takes a file name from this table as a parameter and reads information directly out of that file. The following statement works when character set conversion is not required:

SELECT MYFUNC( filename )
FROM mytable;

The mytable clause indicates a table with a filename column. However, if you need to convert the file name to the character set of the operating system, you would use the following statement.

SELECT MYFUNC( csconvert( filename, 'os_charset' ) )
FROM mytable;