Which version of SAS are you running? In an earlier version of SAS, I created a file using a Unicode SAS session and got the attached out.pdf file. If you open it and try to search on the word "Alice" you get no matches. If you search on "A l i c e" you do get matches. But the output "appears" as if there are no spaces between the characters. However, when I run the code in SAS 9.4M8 in a Unicode session, I get test_unicode.pdf with no registry changes and the file is searchable.
94 proc options group=languagecontrol;
95 run;
SAS (r) Proprietary Software Release 9.4 TS1M8
Group=LANGUAGECONTROL
DATESTYLE=MDY Specifies the sequence of month, day, and year when ANYDTDTE, ANYDTDTM, or
ANYDTTME informat data is ambiguous.
DFLANG=ENGLISH Specifies the language for international date informats and formats.
DSCAS Runs the DATA step on the CAS server.
EXTENDOBSCOUNTER=YES
Specifies whether to extend the maximum number of observations in a new SAS
data file.
LOCALEDATA=SASLOCALE
Specifies the location of the locale database.
LOGLANGCHG Enables changing the language of the SAS log when the LOCALE= option is
changed.
NOLOGLANGENG Write SAS log messages based on the values of the LOGLANGCHG, LSWLANG=, and
LOCALE= options when SAS started.
LSWLANG=LOCALE Specifies the language for SAS log and ODS messages when the LOCALE= option is
set after SAS starts.
MAPEBCDICTOASCII= Specifies the transcoding table that is used to convert characters from ASCII
to EBCDIC and EBCDIC to ASCII.
NONLDECSEPARATOR Disables formatting of numeric output using the decimal separator for the
locale.
ODSLANGCHG Enables the language of the SAS message text in ODS output to change when the
LOCALE option is set after start up.
PAPERSIZE=LETTER Specifies the paper size to use for printing.
RSASIOTRANSERROR Displays a transcoding error when illegal values are read from a remote
application.
TIMEZONE= Specifies a time zone.
TRANTAB= Specifies the translation table catalog entries.
URLENCODING=SESSION
Specifies whether the argument to the URLENCODE function and to the URLDECODE
function is interpreted using the SAS session encoding or UTF-8 encoding.
DBCS Enables double-byte character sets for encoding East Asian languages.
DBCSLANG=UNKNOWN Specifies a double-byte character set language.
DBCSTYPE=UTF8 Specifies the encoding method to use for a double-byte character set.
ENCODING=UTF-8 Specifies the default character-set encoding for the SAS session.
LOCALE=EN_US Specifies a set of attributes in a SAS session that reflect the language,
local conventions, and culture for a geographical region.
NONLSCOMPATMODE Encodes data using the SAS session encoding.
NOTE: PROCEDURE OPTIONS used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
96
97 /* Show the current setting */
98 proc registry startat="CORE\PRINTING\PDF\DBCS" list;
99 run;
NOTE: Contents of SASHELP REGISTRY starting at subkey [CORE\PRINTING\PDF\DBCS]
[ CORE\PRINTING\PDF\DBCS]
Searchable="No"
This is the code I ran:
ods _all_ close;
ods pdf file='c:\temp\test_unicode.pdf' style=printer;
proc print data=sashelp.class;
run;
ods pdf close;
ods listing;
I do not think it is necessary to change the Registry back to Searchable="No" if setting it to Yes is working in your current environment.
... View more