Hi. You can directly use AvaticaProtobufHandler to resolve about chinese problem. The avatica default use AvaticaJsonHandler.
leeqiang wang <[email protected]> 于2021年3月20日周六 上午12:20写道: > Hi,All > Recently, i make Druid SQL queries using the Avatica JDBC driver,but i met > a question ; > if sql body contains Chinese,then return nothing; so i open the source > code,i find a method: > > when request contains Chinese,then sql body may translate into '???',so can > you give me some > advise. > > *org.apache.calcite.avatica.remote.RemoteService.apply* > > public String apply(String request) { > byte[] response = client.send(request.getBytes(StandardCharsets.UTF_8)); > return new String(response, StandardCharsets.UTF_8); > > my *pom file* is : > > <dependency> > <groupId>org.apache.calcite.avatica</groupId> > <artifactId>avatica-core</artifactId> > <version>1.17.0</version> > </dependency> > > > and *my connection code* is like this: > > // Connect to /druid/v2/sql/avatica/ on your Broker. String url = > "jdbc:avatica:remote:url=http://localhost:8082/druid/v2/sql/avatica/"; // > Set any connection context parameters you need here (see "Connection > context" below). // Or leave empty for default behavior. Properties > connectionProperties = new Properties(); try (Connection connection = > DriverManager.getConnection(url, connectionProperties)) { try ( final > Statement statement = connection.createStatement(); final ResultSet > resultSet = statement.executeQuery(query) ) { while (resultSet.next()) { // > process result set } } } > > sql body like : > > select '连接' as link, age from test where name = '小猫' >
