mirror of
https://github.com/internetarchive/heritrix3.git
synced 2026-09-25 07:05:49 +00:00
[HER-1711] Some Internationalized Domain Name seeds ignored by Heritrix
* EnhDirectoryResource.java
ensure files shown for edit or written-back to disk handled as UTF-8
* ConfigFile.java
read file as UTF-8
This commit is contained in:
@@ -18,9 +18,11 @@
|
||||
*/
|
||||
package org.archive.spring;
|
||||
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Reader;
|
||||
import java.io.Writer;
|
||||
|
||||
@@ -46,7 +48,9 @@ public class ConfigFile extends ConfigPath implements ReadSource, WriteTarget {
|
||||
if(!getFile().exists()) {
|
||||
getFile().createNewFile();
|
||||
}
|
||||
return new FileReader(getFile());
|
||||
return new InputStreamReader(
|
||||
new FileInputStream(getFile()),
|
||||
"UTF-8");
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -58,7 +62,9 @@ public class ConfigFile extends ConfigPath implements ReadSource, WriteTarget {
|
||||
|
||||
public Writer obtainWriter(boolean append) {
|
||||
try {
|
||||
return new FileWriter(getFile(), append);
|
||||
return new OutputStreamWriter(
|
||||
new FileOutputStream(getFile(), append),
|
||||
"UTF-8");
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.restlet.data.CharacterSet;
|
||||
import org.restlet.data.Form;
|
||||
import org.restlet.data.Reference;
|
||||
import org.restlet.data.Request;
|
||||
@@ -81,6 +82,9 @@ public class EnhDirectoryResource extends DirectoryResource {
|
||||
File file = ((FileRepresentation)v).getFile();
|
||||
if(getEnhDirectory().allowsEdit(file)) {
|
||||
iter.remove();
|
||||
// any editable file for our purposes should
|
||||
// be XML/UTF-8
|
||||
v.setCharacterSet(CharacterSet.UTF_8);
|
||||
iter.add(new EditRepresentation((FileRepresentation)v,this));
|
||||
};
|
||||
}
|
||||
@@ -125,7 +129,7 @@ public class EnhDirectoryResource extends DirectoryResource {
|
||||
EditRepresentation er = (EditRepresentation) getVariants().get(0);
|
||||
File file = er.getFileRepresentation().getFile();
|
||||
try {
|
||||
FileUtils.writeStringToFile(file, newContents);
|
||||
FileUtils.writeStringToFile(file, newContents,"UTF-8");
|
||||
Flash.addFlash(getResponse(), "file updated");
|
||||
} catch (IOException e) {
|
||||
// TODO report error somehow
|
||||
|
||||
Reference in New Issue
Block a user