My knowledge of CUPS is limited, so I apologize upfront if I can't answer your questions accurately or completely. You may get the answers you need by way of the CUPS Mailing List.
Anyway, I believe that CUPS uses $LANG environment variable by default to determine applicable character sets, but the 'DefaultLanguage' option can still be set explicitly in cupsd.conf if desired.
I know little about the CUPS workflow used with printing text files to dot matrix printers. CUPS uses mime.convs to determine how particular files should be processed before any printer-specific processing is applied. So, you may want to research that a little further first.
There is some good information about CUPS filters and how a '*cupsFilter' entries in given PPD files define how to convert various data types to printer-specific data explained here:
Hope some of this information is useful to you.