03-10-2011
Locales and conversion tables confusion - Some characters don't get translated
Hello,
my program running on AIX receives a message (from MQ) which is in CCSID 870 (LATIN-2 EBCDIC). It needs to convert it to CCSID 912 (ISO-8859-2). For this conversion, it uses the Websphere MQ functionality, but which, according to the manual, uses AIX's system conversion tables. (Btw - it only works like this on AIX. On Linux or Windows, Websphere MQ uses its own coversion logic, ignoring system conversion tables - and it works there.)
The problem is, that some characters like š,č,ť,ž get translated to chr(26).
My checklist was:
1. The LANG environment variable is set to sk_SK
2. Conversion tables seem to be there
(root):/usr/lib/nls/loc/iconvTable# ls -l
...
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-1250_IBM-5346
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-1282_IBM-5346
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-1284_IBM-5346
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-1285_IBM-5346
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-5346_IBM-1250
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-5346_IBM-1282
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-5346_IBM-1284
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-5346_IBM-1285
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-5346_IBM-852
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-5346_IBM-870
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-5346_ISO8859-2
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-852_IBM-5346
-r--r--r-- 1 bin bin 288 Aug 12 2010 IBM-870_IBM-5346
-r--r--r-- 1 bin bin 288 Aug 12 2010 ISO8859-2_IBM-5346
Can you please help me find out what am I forgeting? Thanx.
8 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Can anyone tell me the difference between the 2 Locales:
North American Partial Locales
en_US.ISO8859-1
en_US.ISO8859-15
Does it matter which one to use?
What are the differences?
Thanks.
-I have found the below info but I don't know what it means(Also no RFC# for 8859-15):
... (2 Replies)
Discussion started by: finster
2 Replies
2. AIX
Currently we have the following locales installed on two of our servers
SERVER-1
$ locale -a
C
POSIX
en_US
en_US.8859-15
en_US.ISO8859-1
EN_US
EN_US.UTF-8
ZH_CN
ZH_CN.UTF-8
HI_IN
HI_IN.UTF-8
ko_KR
ko_KR.IBM-eucKR
zh_TW
zh_TW.IBM-eucTW
SERVER-2 (0 Replies)
Discussion started by: voorkey
0 Replies
3. Shell Programming and Scripting
I am trying to transpose tables listed in the format into format. Any help would be greatly appreciated.
Input:
test_data_1
1 2 90%
4 3 91%
5 4 90%
6 5 90%
9 6 90%
test_data_2
3 5 92%
5 4 92%
7 3 93%
9 2 92%
1 1 92%
...
Output:... (7 Replies)
Discussion started by: justthisguy
7 Replies
4. AIX
Hello,
I'm working with an AIX 5.3
This server receive emails from an application (ServiceDesk management) and these emails are read and integrated in another application via an EAI. I work for a french company with french people that write in french : with accentued characters (é,ç,à,...). Sadly,... (2 Replies)
Discussion started by: Djizus
2 Replies
5. Shell Programming and Scripting
I'm having a problem with my locale setting.
Essentially, when using Xmgrace or Awk, all . are replaced with ,
leading to wrong arithmetic.
Here is an explanation of the problem:
awk printing thousands with commas. see LC_ALL=en_US.UTF-8
How can I permanently set the locale... (1 Reply)
Discussion started by: chrisjorg
1 Replies
6. IP Networking
I am using Squid to create a proxy server for framework related to an application. My users sit on a private network in 191.xx.xx.xx space and my proxy sits in a different private network in 188.xx.xx.xx space. There will be a NAT in place to allow bidirectional communications but is there an... (5 Replies)
Discussion started by: BobSpero
5 Replies
7. Linux
I have a .CSV file when I check for the special characters in the file using the command cat -vet filename.csv, i get very lengthy lines with "^@", "^I^@" and "^@^M" characters in between each alphabet in all of the records. Using the code below file filename.csv I get the output as
I have a... (2 Replies)
Discussion started by: dhruuv369
2 Replies
8. UNIX for Beginners Questions & Answers
Hi,
Does anyone know if there is a script or program available out there that uses a conversion table to replace special characters from a file?
I am trying to remove some special characters from a file but there are several unprintable/control characters that some I need to remove but some I... (2 Replies)
Discussion started by: newbie_01
2 Replies
LEARN ABOUT DEBIAN
load_dat_font
load_dat_font(3alleg4) Allegro manual load_dat_font(3alleg4)
NAME
load_dat_font - Loads a FONT from an Allegro datafile.
SYNOPSIS
#include <allegro.h>
FONT *load_dat_font(const char *filename, RGB *pal, void *param)
DESCRIPTION
Loads a FONT from an Allegro datafile. You can set param parameter to point to an array that holds two strings that identify the font and
the palette in the datafile by name. The first string in this list is the name of the font. You can pass NULL here to just load the first
font found in the datafile. The second string can be used to specify the name of the palette associated with the font. This is only
returned if the pal parameter is not NULL. If you pass NULL for the name of the palette, the last palette found before the font was found
is returned. You can also pass NULL for param, which is treated as if you had passed NULL for both strings separately. In this case, the
function will simply load the first font it finds from the datafile and the palette that precedes it.
For example, suppose you have a datafile named `fonts.dat' with the following contents:
FONT FONT_1_DATA
FONT FONT_2_DATA
FONT FONT_3_DATA
PAL FONT_1_PALETTE
PAL FONT_2_PALETTE
Then the following code will load FONT_1_DATA as a FONT and return FONT_1_PALETTE as the palette:
FONT *f;
PALETTE pal;
char *names[] = { "FONT_1_DATA", "FONT_1_PALETTE" }
f = load_dat_font("fonts.dat", pal, names);
If instead you want to load the second font, FONT_2, from the datafile, you would use:
FONT *f;
PALETTE pal;
char *names[] = { "FONT_2_DATA", "FONT_2_PALETTE" }
f = load_dat_font("fonts.dat", pal, names);
If you want to load the third font, but not bother with a palette, use:
FONT *f;
char *names[] = { "FONT_3_DATA", NULL }
f = load_dat_font("fonts.dat", NULL, names);
RETURN VALUE
Returns a pointer to the font or NULL on error. Remember that you are responsible for destroying the font when you are finished with it to
avoid memory leaks.
SEE ALSO
register_font_file_type(3alleg4), load_font(3alleg4)
Allegro version 4.4.2 load_dat_font(3alleg4)