@sasuser92 wrote:
I am on Windows and get this:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
So you need to scrub your SAS datasets of any characters that do not fit into codepage 1252 (also known as WLATIN1 or LATIN1).
data want;
set have;
*----------------------------------------------------------------------------;
* Convert any UTF-8 character not in LATIN1 codepage to HTML encoded strings ;
*----------------------------------------------------------------------------;
array _character_ _character_;
do over _character_;
do until(_n_=0);
_n_=kverify(_character_,collate(0,127)||kcvt(collate(128,255),'latin1','utf-8'));
if _n_ then _character_=tranwrd(_character_,ksubstr(_character_,_n_,1)
,htmlencode(ksubstr(_character_,_n_,1),'7bit'))
;
end;
end;
run;
Note you might have to make your character variables longer.
You might also need to do something about characters in variable labels.
... View more