Содержимое кириллической базы данных в скрипте Google Sheets JDBC - PullRequest
0 голосов
/ 23 декабря 2018

Добрый день всем, я столкнулся со странной проблемой со скриптом Google Sheets, где не работает отображение и фильтрация запроса MySQL из-за его содержания на русском языке

Я помещу всеНиже приведен код сценария, но основная часть, которая не работает:

  from samplename_order WHERE status = "Оплачен")');

, а также

  select (select data_create) as "Дата"

Во втором примере в заголовке столбца отображается значение "???? "

В первом примере я вообще ничего не получаю, кроме имени заголовка столбца.

Весь код:

    function onOpen() {

var spreadsheet = SpreadsheetApp.getActive();

var menuItems = [
    {name: 'Sync', functionName: 'readData'}
];
spreadsheet.addMenu('Sync', menuItems);
}


var address = 'xxx:3306'; //ex. '10.1.1.1:1433'
var user = 'xxx';
var userPwd = 'xxxx';
var db = 'sxxxx';

var dbUrl = 'jdbc:mysql://' + address + '/' + db;


function readData() {
 var conn = Jdbc.getConnection(dbUrl, user, userPwd);
 var stmt = conn.createStatement();
 stmt.setMaxRows(1000);

 var results = stmt.executeQuery('select (select data_create) as "Дата",(select concat(name," ",sername)) as name,mail,(select concat(" ",phone)) as phone,comments,`status` from sample_order WHERE status = "Оплачен"');

  var metaData=results.getMetaData();
 var numCols = results.getMetaData().getColumnCount();






 var sheet = SpreadsheetApp.getActiveSheet();




 sheet.clearContents();

 var arr=[];

 for (var col = 0; col < numCols; col++) {
  arr.push(metaData.getColumnName(col + 1));
 }

 sheet.appendRow(arr);


 while (results.next()) {
  arr=[];

  for (var col = 0; col < numCols; col++) {

   arr.push(results.getString(col + 1));
  }
 sheet.appendRow(arr);

}

results.close();
stmt.close();

sheet.autoResizeColumns(1, numCols+1);


}

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Добавьте это к вызову getConnection():

?useUnicode=yes&characterEncoding=UTF-8

Объяснены вопросительные знаки и другие общие проблемы с наборами символов здесь

0 голосов
/ 23 декабря 2018

Возможно, вам следует использовать соответствующую кодировку в строке подключения.Существует хороший ответ для использования utf-8 в таком случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...