Skip to content

Commit befb43b

Browse files
authored
Use UTF-8 encoding to save files (#64)
* scheme2ddl-63 use UTF-8 encoding to save files
1 parent 1c8a79a commit befb43b

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

src/main/java/com/googlecode/scheme2ddl/UserObjectWriter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.springframework.batch.item.ItemWriter;
1010

1111
import java.io.File;
12+
import java.nio.charset.StandardCharsets;
1213
import java.util.List;
1314

1415
/**
@@ -31,7 +32,7 @@ public void writeUserObject(UserObject userObject) throws Exception {
3132
String absoluteFileName = outputPath + "/" + userObject.getFileName();
3233
absoluteFileName = FilenameUtils.separatorsToSystem(absoluteFileName);
3334
File file = new File(absoluteFileName);
34-
FileUtils.writeStringToFile(file, userObject.getDdl());
35+
FileUtils.writeStringToFile(file, userObject.getDdl(), StandardCharsets.UTF_8);
3536
log.info(String.format("Saved %s %s.%s to file %s",
3637
userObject.getType().toLowerCase(),
3738
userObject.getSchema().toLowerCase(),
@@ -40,7 +41,6 @@ public void writeUserObject(UserObject userObject) throws Exception {
4041
}
4142

4243

43-
4444
public void setOutputPath(String outputPath) {
4545
this.outputPath = outputPath;
4646
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.googlecode.scheme2ddl;
2+
3+
import com.googlecode.scheme2ddl.domain.UserObject;
4+
import org.assertj.core.api.Assertions;
5+
import org.testng.annotations.Test;
6+
7+
import java.io.File;
8+
9+
public class UserObjectWriterTest {
10+
11+
private UserObjectWriter userObjectWriter = new UserObjectWriter();
12+
13+
@Test
14+
public void testWriteUserObjectWithUtf8() throws Exception {
15+
16+
String content = "--你好 Немного текста в UTF-8";
17+
String outputPath = "output";
18+
userObjectWriter.setOutputPath(outputPath);
19+
UserObject userObject = new UserObject();
20+
userObject.setType("tmp_test");
21+
userObject.setSchema("tmp_test");
22+
userObject.setName("content_utf8");
23+
userObject.setFileName("tmp_test.sql");
24+
userObject.setDdl(content);
25+
userObjectWriter.writeUserObject(userObject);
26+
27+
String fileName = outputPath + "/" + userObject.getFileName();
28+
File f = new File(fileName);
29+
f.deleteOnExit(); //to delete temp file after test over
30+
Assertions.assertThat(f).hasContent(content);
31+
32+
}
33+
}

0 commit comments

Comments
 (0)