Contact US

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Trouble with special Spanish characters in PCL 5e

Trouble with special Spanish characters in PCL 5e

Trouble with special Spanish characters in PCL 5e

Hi.  We produce PCL 5e code to print electronic forms and we are having problems getting special Spanish characters like to output correctly.  For example, the '¿' (upside-down question mark) gets converted to a '?'.  I did some research and believe it has to do with the Symbol Set command.  Please correct me if I'm wrong.  For most of our fonts like Arial, Times, etc. (we support all of the default fonts for HP/Lexmark printers) we use 19U which is listed in the manuals as "Windows 3.1 Latin 1".  A few are different - Antique Olive uses 9U, Symbol uses 9U.  

Can someone tell me which symbol set to use?  Is there a better default symbol set to use that encompasses all characters for single-byte languages such as english/spanish, etc.?  I'm wondering what's the best method to choose the Symbol Set for a font like Arial without having the user tell me they are designing a document that uses Spanish characters.


RE: Trouble with special Spanish characters in PCL 5e

Try Roman-8...


Jim Asman

RE: Trouble with special Spanish characters in PCL 5e

Symbol Set 0N (ISO8859/1 Latin-1) is the basic 'Western European' coded character set; 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)

Symbol set 19U (Windows 3.1 Latin-1) is a superset of 0N, where extra printable characters replace 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, (except for the (bitmap) LinePrinter font, which does not support 19U).

Symbol fonts like Symbol, Wingdings, etc. have their own symbol sets.

I recommend that you use 19U wherever possible.

Do bear in mind that whatever coded character set you use, both input (keyboard, application, etc) and output (screen, printer, etc.) must be employing the same one.

RE: Trouble with special Spanish characters in PCL 5e

The problem with symbol sets like 8U ([Roman-8) is that they generally do not provide a one-to-one mapping with the coded character sets used on most (single-byte) systems:

  • Most Unix/Linux systems default to use of the ISO8859/1 Latin-1 coded character set; this corresponds to the HP symbol set 0N.
  • Windows systems default to use of the Windows 3.1 Latin-1 coded character set; this corresponds to the HP symbol set 19U, which (as mentioned above) is a superset of 0N.

Symbol set 8U will match the ISO8859/1 Latin-1 repertoire for characters in the range 0x00-0x7f, but uses a different set of character shapes for codepoints 0xa0-0xff; you can't even work out a translation between the two, because the set of glyphs (character shapes) defined in 8U is not the same as that in 0N.

RE: Trouble with special Spanish characters in PCL 5e

I forgot to mention that ISO 8859/1 (i.e. symbol set 0N) is a subset (the Basic Multilingual Plane) of the 16-bit Unicode standard, as used internally on modern Windows and Unix/Linux systems.

RE: Trouble with special Spanish characters in PCL 5e

Thanks for the replies guys.  I found my problem and it didn't have anything to do with PCL.  I'm using Microsoft .NET for a printing component I've written and needed to get the text I was printing from a string object to a byte[].  In .NET there is a function called System.Text.Encoding.ASCII.GetBytes().  The only equivalent is Unicode.GetBytes() or UTF-8, UTF-7.  which I don't want to use because it doubles the size of my PCL.  Anyway, ASCII.GetBytes() was replacing anything above 127 with a '?'.  I had to make my own function to iterate over each char in the string and add it to a byte array.

Sorry for the confusion!  At least I know 19U is the correct symbol set.  :)


Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close