[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:
gojomo
2009-11-25 01:14:59 +00:00
parent 79fd64a2b5
commit a1022c8246
2 changed files with 15 additions and 5 deletions
@@ -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