My Oracle Support Banner

Handling Special Characters With printf() In A Tuxedo Application Server On A Multi-Byte Locale Linux Environment (Doc ID 1901526.1)

Last updated on JULY 26, 2017

Applies to:

Oracle Tuxedo - Version 10.3.0 and later
Linux x86-64

Goal

When using a special character with printf() in a Tuxedo application server application, on Linux , it can not handle the character correctly.

For example,

char moji[16];
strcpy(moji,"aa(1)aa";   // (1) means special character number in circle.
printf("str=%.6sx",moji);

 

The result is :

str=


The client process works well but any server process, using printf(),  can not handle the character correctly.

If LC_CTYPE is set as Japanese, or some other multi-byte locale, this problem happen on Linux.

The application server process by default on startup is an equivalent setlocale(LC_ALL,"") so the server process LC_CTYPE will be same as $LANG

Solution

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Goal
Solution


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.