zOS only recognizes the string "ISO8859-1", other platforms now use "ISO-8859-1". zOS is using
native iconv, not apr-iconv, so can not use apr-iconv/ccs/charset.aliases to map the strings.

How can apr-util hide the difference when using native iconv()
(provide a symbol that means ISO-8859-1, check for alternate charset names in the code, or ??)

This is the patch i'm running with, works but any suggestions for improvement?

Index: xlate/xlate.c
--- xlate/xlate.c       (revision 579232)
+++ xlate/xlate.c       (working copy)
@@ -74,6 +74,11 @@
     else if (page == APR_LOCALE_CHARSET) {
         return apr_os_locale_encoding(pool);
+#ifdef __MVS__
+    else if (!strcasecmp(page, "ISO-8859-1")) {
+        return "ISO8859-1";
+    }
     else {
         return page;

For reference the patch that zOS can't handle:

Revision 104078 server/util_ebcdic.c changed from using "ISO8859-1" to "ISO-8859-1":
Revision 104078 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jun 29 13:33:24 2004 UTC (2 years, 6 months ago) by martin
File length: 3069 byte(s)
Diff to previous 102619 (colored)
Use standardized names for ISO-8859-1, see http://www.iana.org/assignments/character-sets
(Using the name iso8859-1 may still work, because it is aliased in apr-iconv/ccs/charset.aliases)