What you need to do is to ensure that the coded character set that your application/spooler is using is the same as the coded character set which the printer is using (or has been told to use).
On HP printers, using PCL5, the 'coded character set' in use is identified using a 'symbol set identifier', which is used as part of a PCL font selection sequence.
Most Unix/Linux systems default to use of the ISO8859/1 Latin-1 coded character set; this corresponds to the HP symbol set 0N; this set uses character ranges as follows:
0x00->0x1f: control codes
0x20->0x7f: basic ASCII printable characters
0x80->0x9f: undefined control codes
0xa0->0xff: extended ASCII (Western European)
[ISO 8859/1 (i.e. symbol set 0N) is actually an 8-bit subset (the Basic Multilingual Plane) of the 16-bit Unicode standard, as used internally on modern Windows and Unix/Linux systems].
For 8-bit coded streams, Windows systems default to use of the Windows 3.1 Latin-1 coded character set (usually known as Windows ANSI); this corresponds to the HP symbol set 19U, which is a superset of 0N; in this set, extra printable characters (e.g. per-mille sign) replace some of the undefined control codes in the range 0x80-0x9f.
On modern LaserJet printers (and clones), all of the standard text fonts support both of these symbol sets (0N and 19U), except for the (bitmap) LinePrinter font, which does not support 19U.
Symbol fonts like Symbol, Wingdings, etc. have their own symbol sets.
If a specific 'symbol set identifier' sequence is not sent to the printer, the device will use the power-on default value (which may have been set via front panel menus to a user-defined choice), but which will otherwise default to the Roman-8 symbol set 8U.
With this symbol set, the 7-bit characters (i.e. those less than 0x80) will match set 0N, but all the other characters (0x80 -> 0xff) have different encodings.
I've no idea what coded character set is used by defauilt by as400; I imagine that it will probably be ISO-8859/1, which implies that you should be selecting symbol set 0N, assuming that you are using 8-bit characters rather than 16-bit characters.