JDBC到mysql字符编码

JDBC到mysql字符编码,jdbc,google-apps-script,Jdbc,Google Apps Script,好的,我将演示我在教程代码中遇到的问题 到 我会得到????在我的数据库中。我的数据库和表中有utf8\u general\u ci 我已经看到了这一点,并尝试了实用程序.newBlob(“”).setDataFromString(“foo”,“UTF-8”).getDataAsString(“UTF-16”)还有很多人建议在我的连接链接后使用?characterEncoding=utf8,但我会收到错误消息。我能够成功地写入(MySQL 5.5)使用你在那里的角色。这是我唯一可以访问的MyS

好的,我将演示我在教程代码中遇到的问题

我会得到????在我的数据库中。我的数据库和表中有utf8\u general\u ci


我已经看到了这一点,并尝试了
实用程序.newBlob(“”).setDataFromString(“foo”,“UTF-8”).getDataAsString(“UTF-16”)
还有很多人建议在我的连接链接后使用
?characterEncoding=utf8
,但我会收到错误消息。

我能够成功地写入(MySQL 5.5)使用你在那里的角色。这是我唯一可以访问的MySQL数据库

你可以看到,我称之为“动物”的一个简单表格中有正确的数据。我甚至试过日语,效果很好

这是我使用的代码-

function writeEncodingIssue() {
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://<MY_INTSANCE_NAME>/mysql");
  conn.setAutoCommit(false);
  var stmt = conn.prepareStatement("insert into animals (name) values (?)");
  for (var i = 0; i < 2; i++) {
    stmt.setObject(1, 'žťščľýá' + i);//ショッピング
    stmt.addBatch();
  }
  var res = stmt.executeBatch();
  conn.commit();
  conn.close();
}
函数writeEncodingIssue(){
var conn=Jdbc.getCloudSqlConnection(“Jdbc:google:rdbms:///mysql");
连接设置自动提交(错误);
var stmt=conn.prepareStatement(“插入动物(名称)值(?));
对于(变量i=0;i<2;i++){
stmt.setObject(1,'ťťššššá'+i)//ショッピング
stmt.addBatch();
}
var res=stmt.executeBatch();
conn.commit();
康涅狄格州关闭();
}
也许您可以尝试用Java或其他语言编写一个测试程序,将其与应用程序脚本问题隔离开来

编辑:我已经能够用MySQL重现这个问题。该文件已更新。应用程序脚本团队正在对此进行调查

stmt.setObject(1, 'firstName' + i);
stmt.setObject(1, 'žťščľýá' + i);
function writeEncodingIssue() {
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://<MY_INTSANCE_NAME>/mysql");
  conn.setAutoCommit(false);
  var stmt = conn.prepareStatement("insert into animals (name) values (?)");
  for (var i = 0; i < 2; i++) {
    stmt.setObject(1, 'žťščľýá' + i);//ショッピング
    stmt.addBatch();
  }
  var res = stmt.executeBatch();
  conn.commit();
  conn.close();
}