× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Scott,

As always - spot on.
Using o_ccsid solved all problems and the program is working as expected.
And yes - I use o_ccsid=0, and that's confirmed working on ccsid 278 and ccsid 277 lpars with national characters involved!

Thank you for your time and effort - I actually read up on fopen ahead of posting, but until your explanation I did not understood the difference between ccsid and o_ccsid.

Best regards

Stefan

-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Scott Klement
Sent: Tuesday, January 4, 2022 12:47 AM
To: rpg400-l@xxxxxxxxxxxxxxxxxx
Subject: Re: RPGprogram: how to use fopen with various CCSID's

Use o_ccsid instead of ccsid. Also, consider whether you really want to hard-code 278, or if you'd be better off using o_ccsid=0 (0 means current job's ccsid).

The ccsid= keyword is legacy cruft -- don't use it. It was for old releases before the IFS supported CCSIDs, so what it does is convert the CCSID to a corresponding code page, and then uses that... this won't work with anything that requires multiple code pages (such as Unicode.)

https://www.ibm.com/docs/api/v1/content/ssw_ibm_i_74/rtref/fopen.htm

On 1/3/2022 12:15 PM, stefan@xxxxxxxxxx wrote:
I need to read thru a bunch of IFS-files in an rpg-program to locate
some items.

Using fopen( %trimr( file ): 'r, ccsid=278' ); seems to work pretty
well until I encounter a file with CCSID=13488.

That one gives me an errno=3490=Conversion error.

If I modify the fopen to fopen( %trimr( file ): 'rb' ); binary mode
makes me get thru the open but then I have to translate all the data by myself.

What is the proper way of dealing with this?


I am expecting to find files in various ccsid's like 819, 37, 819,
278, 13488, 1252 etc.

--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.