A few comments:
(a) As the first of the links pointed to by jrbblr indicates:
"GS1-128 (previously known as UCC-128 and EAN-128) is defined by GS1 and used to create several types of barcode symbols that include Application Identifiers".
(b) All Code 128 based barcodes start with a start character; there are three such characters, indicating which subset (A, B or C) is used to encode the whole (or at least the first part of) the encoded value.
(c) The ISO specification for Code 128 defines the location (in terms of ASCII characters and Unicode values) for the barcode symbols with character values 1 -> 94 inclusive (they are mapped to hexadecimal code-points 21 -> 7E inclusive).
For the bar-code symbols with character value 0 (space), character values 95 -> 105 inclusive (this includes the FNC1 character, and the STARTA, STARTB and STARTC characters), and character value 106 (the STOP character), the ISO specification does not specify the location of these symbols within a font.
So the values used for these characters depend on which font you are targetting for printing the barcode - typically, values in the hexadecimal ranges B1 -> BD, or C0 -> CC are used.
... and then for any 'printable' characters, you'd need to use a font which had 'space' characters for these codes if you didn't want them to print.
But normally you'd not pass the initial (START, FNC (if present)) and final (STOP) characters to the function which rendered the 'printable' line anyway.