Skip to content
This repository was archived by the owner on Apr 10, 2021. It is now read-only.

Commit 2afd830

Browse files
committed
Merge pull request #90 from welovecoding/patch-for-issue75
Fixed encoding problem
2 parents d7ef7e9 + 3928e68 commit 2afd830

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/main/java/com/welovecoding/nbeditorconfig/io/writer/StyledDocumentWriter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.io.IOException;
1212
import java.io.InputStream;
1313
import java.io.InputStreamReader;
14+
import java.io.Reader;
1415
import java.nio.charset.Charset;
1516
import java.nio.file.Files;
1617
import java.nio.file.Paths;
@@ -135,7 +136,9 @@ public static void writeWithEditorKit(FileInfo info)
135136
LOG.log(Level.INFO, "Write to \"document\": {0}", cookie.getDocument());
136137

137138
// Read input stream into the document (which is a "write" operation)
138-
kit.read(is, cookie.getDocument(), 0);
139+
try (Reader reader = new InputStreamReader(is, info.getCharset())) {
140+
kit.read(reader, cookie.getDocument(), 0);
141+
}
139142
cookie.saveDocument();
140143

141144
info.getFileObject().setAttribute(ENCODING_SETTING, info.getCharset().name());

src/main/java/com/welovecoding/nbeditorconfig/processor/EditorConfigProcessor.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
import com.welovecoding.nbeditorconfig.processor.operation.TrimTrailingWhiteSpaceOperation;
1414
import com.welovecoding.nbeditorconfig.processor.operation.tobedone.CharsetOperation;
1515
import java.io.IOException;
16+
import java.nio.charset.Charset;
1617
import java.nio.charset.StandardCharsets;
1718
import java.util.logging.Level;
1819
import java.util.logging.Logger;
1920
import java.util.prefs.BackingStoreException;
2021
import java.util.prefs.Preferences;
2122
import org.netbeans.api.project.Project;
23+
import org.netbeans.api.queries.FileEncodingQuery;
2224
import org.netbeans.modules.editor.indent.spi.CodeStylePreferences;
2325
import org.openide.cookies.EditorCookie;
2426
import org.openide.filesystems.FileObject;
@@ -117,8 +119,11 @@ protected FileInfo excuteOperations(DataObject dataObject, MappedEditorConfig co
117119
FileObject primaryFile = dataObject.getPrimaryFile();
118120
StringBuilder content;
119121

122+
MappedCharset mappedCharset = config.getCharset();
123+
Charset defaultCharset = FileEncodingQuery.getEncoding(primaryFile);
120124
try {
121-
content = new StringBuilder(primaryFile.asText());
125+
String charset = mappedCharset != null ? mappedCharset.getCharset().name() : defaultCharset.name();
126+
content = new StringBuilder(primaryFile.asText(charset));
122127
} catch (IOException ex) {
123128
LOG.log(Level.WARNING, "Failed to get the text of the file");
124129
content = new StringBuilder("");
@@ -136,15 +141,13 @@ protected FileInfo excuteOperations(DataObject dataObject, MappedEditorConfig co
136141
info.setCookie(cookie);
137142

138143
// 1. "charset"
139-
MappedCharset mappedCharset = config.getCharset();
140-
141144
if (mappedCharset != null) {
142145
logOperation(EditorConfigConstant.CHARSET, mappedCharset.getName());
143146
boolean changedCharset = new CharsetOperation().run(dataObject, mappedCharset);
144147
fileChangeNeeded = fileChangeNeeded || changedCharset;
145148
info.setCharset(mappedCharset.getCharset());
146149
} else {
147-
info.setCharset(StandardCharsets.UTF_8);
150+
info.setCharset(defaultCharset);
148151
}
149152

150153
// 2. "end_of_line"
@@ -191,11 +194,6 @@ protected FileInfo excuteOperations(DataObject dataObject, MappedEditorConfig co
191194
fileChangeNeeded = fileChangeNeeded || trimmedWhiteSpaces;
192195
}
193196

194-
if (mappedCharset != null) {
195-
} else {
196-
info.setCharset(StandardCharsets.UTF_8);
197-
}
198-
199197
info.setFileChangeNeeded(fileChangeNeeded);
200198
info.setStyleFlushNeeded(styleFlushNeeded);
201199

0 commit comments

Comments
 (0)