× 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.


  • Subject: Re: CSV files with Byte Over Marks
  • From: Buck Calabro <kc2hiz@xxxxxxxxx>
  • Date: Tue, 19 Jun 2018 15:28:00 -0400
  • Autocrypt: addr=kc2hiz@xxxxxxxxx; keydata= xsDiBEcbaT4RBADqmM9OgXil65pjrxclJpxuAF6vraI3kkmJbEHb5ElL7EquHE3QDuFqFgIB 4NZLHDbVAh0AD5exAX+r+xg//UvtBc2k34HROnCpWTMnIOaSVhhVjpYEbZGLz6wfrRpu4Qyn 45iaKT4F0qcHo+0LrGQPef3xrFkUhxURgzY5zgo6+wCg/XjYJ155witPWB2CbNf6RAm9QT0D /jSp6YhvE3xPE12aBuRYM678JTbaQfuYv4HUfug1Wz/0zH5btfEihWVN4wbKaoQ/H/29v2TP /Lyh8XTVd3Z0rz4iaSD5fGicn81WPANBeIepLB8vpfEik6UhHpN1DJkz6Ryw2mgx8p53LhHV Ck4Jt0HP2TAl3f7QTXGFOiFzJwEqBACsHk/gFpKAHdv7n4vJoHqp0RNgOOyhnTThlulPilt6 tAaSe10FOrrugBuLMn7wXBANQ1ApmIb5yNjhYqPREj65OVv2MUbw8H2HnQs//Z6aodyR/kzU 2q2G9A/YFI1LL0m/gvaVbEj/wE0ybBgFkrcoEFeStkqS5HzLEFGUDFXhD80fQnVjayBDYWxh YnJvIDxrYzJoaXpAZ21haWwuY29tPsKFBBMRAgBFAhsDBgsJCAcDAgQVAggDBBYCAwECHgEC F4AFAkcbdMokGGh0dHA6Ly9rZXlzZXJ2ZXIudmVyaWRpcy5jb206MTEzNzEvAAoJEN7KcclH umuRfngAoNXU6AXqyTR8FRuoXKBGS4k7bPUEAJ912WKSkjpCt0axjrq6j22e5XgWzc7BTQRH G2k+EAgAnLXJ9hOqedgsIYM3LuomBBNN+7WTFSVaJ3Rqz8XVZtJvLL0bIRAvpVK9L9rYXlCR cPAm0YNK6H2DR7sQxWlxEH4mWB+jTCTALpcVq+Kpfbw5qDdn+9DVMS7tBOchtTlPSGgdKgn7 sTObra8cHtX/ddTB6OLzHeTXr4PZbUwVeQdIStdwMmozKBQvgjXWKi1GiuYbwYkCM/zJEUCs J36BIE4li9xohJ5O4iKC20YVckMJfZLbn1a2gVgn6Re8C5ezNewT0qM8ZDCUNENWAxsU/c9J UCFQ2QcMU+25b84D5yPxnEKna5U9Fz2JjRjWy5ZKZx2+WhZj0r2Tw6/kGb28AwADBgf/WBsn JSMHxyVfg+LKLHpdANwa9jdrKOt2WjJbWOiJ9l7SmqD0oi3c22FFxRXKsFfjCikLk9wbLZKH SqqnOePvMMHqNcqQTSv7+ARjxnBH4g6dhqg+zmebKpt8zV2awQzYSSm4YY6IqzkWmPNAN7BU zUtSAfL4UU2PljTnT9m443aVCTXMne5l90HQv/gdJ121owg5KuGE6LodTpoR4hn9nbdKWtfY pDNoykvR+GN5y335yF2Zp/j6QgdxWezjou5Y3/6PUZLEsJagWe9hAcKb1eiO2bmg+1bFYu0T g5Mvb27nqfFeHHFysC7a7sXtxp/pqNLNDcK6j/7Th6vF7/n98cJJBBgRAgAJBQJHG2k+AhsM AAoJEN7KcclHumuR9SgAnRuJWHon4GP58xbqCiFR/jSUfvRgAJ47KZ1UNoXgdftoePnbrZu6 W+poEw==
  • List-archive: <https://archive.midrange.com/rpg400-l/>
  • List-help: <mailto:rpg400-l-request@midrange.com?subject=help>
  • List-id: "RPG programming on the IBM i \(AS/400 and iSeries\)" <rpg400-l.midrange.com>
  • List-post: <mailto:rpg400-l@midrange.com>
  • List-subscribe: <https://lists.midrange.com/mailman/listinfo/rpg400-l>, <mailto:rpg400-l-request@midrange.com?subject=subscribe>
  • List-unsubscribe: <https://lists.midrange.com/mailman/options/rpg400-l>, <mailto:rpg400-l-request@midrange.com?subject=unsubscribe>

On 6/19/2018 2:24 PM, Soucy, Michael wrote:

What's the CCSID of your job, your QCCSID system value, the DB2 tables involved?

I don't mean to sounds like an idiot here, but how do I check that? I'm just running Scott's utility from green screen in debug mode.

For your job:
DSPJOB option 2. Page down 3(?) times, it's the Coded character set
identifier.

For your system value:
DSPSYSVAL QCCSID

For your files:
DSPFD lib/file Page down 2(?) times, it's the CCSID

If there's a 65535 in the mix, that could be the issue, because 65535 means 'Do not translate this binary data'.

The point of this line of inquiry is to determine what conversions might
be necessary. Maybe we need to step back a bit more and talk a bit
about text conversions in general.

When the distant ancestor of IBM i (System/38 CPF) was released, IBM
released it using one character set, or encoding: EBCDIC. Years later,
IBM introduced other CCSIDs to support other languages like Turkish,
Danish, Thai, etc. When that happened, they created a new system value
named QCCSID, and for the sake of compatibility, defaulted it to 65535 -
no translate / no conversion. Where I am in the US, the 'expected'
value would be 37 - US English.

Let's keep the example simple, and imagine that we want to export a file
of EBCDIC text off to an ASCII PC. Generally, there is a one-to-one
mapping of 'characters' in EBCDIC and ASCII. In EBCDIC, the number 1 is
x'F1'. In ASCII, it's x'31'. So we might have an item number on IBM i
as '12345' - x'F1F2F3F4F5'. If we sent those bits over to an ASCII
machine and opened it in Notepad, it would be gibberish. What needs to
happen is a conversion of the bits from x'F1F2F3F4F5' to x'3132333435'.
This is the sort of thing that IBM i Access does when it does a File
Transfer, the same thing FTP does when in Text mode, the same thing any
program does when reading text in one character set and writing in another.

That's the same general idea needed when talking about any two,
different CCSIDs. The bit encoding for any particular individual
character might differ between the CCSIDs, and so any text needs those
bit patterns converted from the source encoding to the target encoding.

The most common conversion we face is probably between EBCDIC (37) and
ASCII (819) or Windows (1252). But we're starting to see conversions
between EBCDIC (37) and UTF-8 (1208). Which might be where you are, but
we haven't yet established what CCSIDs are in use at your site.

A conversion error might ensue if the program is trying to convert from
UTF-8 (1208) to Binary/No conversion (65535), which is why I started you
looking in that direction. That's not a program issue - there isn't any
conversion possible. Remember, we can only convert textual characters.
Files like JPG or TIFF need their binary bit patterns to remain exactly
as-is.

A conversion error might also ensue if the source encoding is lying
about what's inside the file; what if the ADP file really is UTF-8 but
the CCSID of that file is 1252 (Windows)? The system will use the wrong
conversion table, and if it comes across text data that is illegal in
1252, it'll roll over because it doesn't know what to do with it.
That's why I wanted you to look at the IFS file in hex - to see exactly
what bit patterns are physically stored in there.

Sorry for the length. If I were smarter I could make it shorter :-(


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.