我想从Dataflow Pipeline将多字节字符串(例如Japanese)写入Spanner。 但这不起作用。
下面是我尝试的代码。 (编辑:我改写了更接近实际的内容)
ParDo.of(new DoFn<TableRow, Mutation>() {
@ProcessElement
public void processElement(ProcessContext c) throws IOException {
TableRow row = c.element();
Mutation.WriteBuilder mutationWriteBuilder = Mutation.newInsertOrUpdateBuilder('testtable');
for (Entry<String, Object> entry : row.entrySet()) {
String columnName = entry.getKey();
Object value = entry.getValue();
Charset utf8 = StandardCharsets.UTF_8;
String str = new String(value.toString().getBytes(utf8), utf8);
mutationWriteBuilder.set(columnName).to(str);
}
Mutation mutation = mutationWriteBuilder.build();
c.output(mutation)
}
}
此管道将成功,但是实际写入的值是乱码,例如'。'。
我做错什么了吗?