У меня есть этот макрос, который создает файл json,
но, несмотря на то, что я указал encoding='utf-8' bom
, я не получаю файл utf-8.
%macro json4datatables_useformat(ds,path,file,charvars,numvars)
/
DES="json4datatables(ds,path,file,charvars,numvars)";
/* creates a json with no headers
* a bit like a csv without the first line
* it takes thus less space
* but you have to know which column is what
*/
data _null_;
length line $300;
set &ds nobs=nobs end=end;
file "&path.&file." encoding='utf-8' bom/**/ ;
line = '[';
%if &charvars ne %then %do;
%do i=1 %to %sysfunc(countw(&charvars));
%let charvar = %scan(&charvars, &i);
%if &i ne 1 %then %do;
line = cats(line,',');
%end;
line = cats(line,'"',vvalue(&charvar),'"');
%end;
%end;
%if &numvars ne %then %do;
%do i=1 %to %sysfunc(countw(&numvars));
%let numvar = %scan(&numvars, &i);
line = catx(',',line,vvalue(&numvar));
%end;
%end;
line = cats(line,']');
if _n_=1 then put '{"data": [';
if not end then put line +(-1) ',';
else do;
put line;
put ']}';
end;
run;
%mend json4datatables_useformat;
Я заметил, что акценты отображаются как странные символы на веб-странице, где я отображаю файл json.
И проблема решается простым открытием файла json в возвышенном тексте и выполнением Файл>Сохранить с кодировкой>UTF-8. . (с спецификацией не требуется.)
Есть ли другой способ заставить кодировку utf-8?
РЕДАКТИРОВАТЬ: я использую SAS EG 7.1, SAS 9.3 в Windows.
\SASFoundation\9.3\sasv9.cfg
так, чтобы он указывал на файл в\nls\u8
вместо `\nls\en` (думаю, EG оценит это). Если это сервер, вам придется поговорить с администратором вашего сервера. - person Joe   schedule 11.08.2016