2013-05-02 2 views
0

좋아 나는 슬로바키아에서 https://developers.google.com/apps-script/jdbcJDBC MySQL의 문자 인코딩에

function insert() { 
    var conn = Jdbc.getConnection("jdbc:mysql://<host>:<port>/<instance>", "user", "password"); 

    conn.setAutoCommit(false); 
    var stmt = conn.prepareStatement("insert into person (lname,fname) values (?,?)"); 
    var start = new Date(); 
    for (var i = 0; i < 5000; i++) { 
    // Objects are accessed using 1-based indexing 
    stmt.setObject(1, 'firstName' + i); 
    stmt.setObject(2, 'lastName' + i); 
    stmt.addBatch(); 
    } 
    var res = stmt.executeBatch(); 
    conn.commit(); 
    conn.close(); 
    var endTime = new Date(); 
    Logger.log("time is " + (endTime.getTime() - start.getTime()) + "ms"); 
    Logger.log("res has " + res.length); 
} 

임에서 튜토리얼 코드에 내 문제를 보여줍니다거야, 그리고 내가이 줄을 변경 한 후 우리는 žťščľýá 같은 특수 문자를 사용할 수 있도록

stmt.setObject(1, 'firstName' + i); 

~

stmt.setObject(1, 'žťščľýá' + i); 

??? 내 db.I 내가이 JDBC Service with MySQL : UTF-8 encoding/decoding을 보이고 Utilities.newBlob("").setDataFromString("foo", "UTF-8").getDataAsString("UTF-16")이 사람들의 많은 내 연결 링크 후 ?characterEncoding=utf8를 사용하도록 제안하는 JDBC character encoding하지만 난거야 오류를 시도했습니다 picture

내 DB 내 테이블에 utf8_general_ci이 메시지.

답변

0

거기에있는 문자를 사용하여 Google Cloud SQL (MySQL 5.5)에 성공적으로 쓸 수 있습니다. 그것이 내가 접근 할 수있는 유일한 MySQL DB입니다.

내가 동물이라고 부른 간단한 테이블이 올바른 데이터를 얻는 것을 볼 수 있습니다. 나는 심지어 일본어를 시도했고 그것은 잘 작동했다. 여기

enter image description here

내가 사용하는 코드입니다 -

아마도
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(); 
} 

당신이 애플리케이션 스크립트 문제로이 문제를 분리하는 테스트 자바 프로그램이나 다른 뭔가를 작성하려고 할 수 있습니까?

편집 : MySQL에서이 문제를 재현 할 수있었습니다. issue tracker item이 업데이트되었습니다. Apps Script 팀에서이를 조사하고 있습니다.