** Comment utiliser ** Rassemblez les fichiers texte que vous souhaitez convertir au format UTF-8 dans un dossier. Écrivez l'emplacement du dossier où il est dit "chemin du dossier". Écrivez le chemin comme suit. (Je pense que vous devez ajouter un "\" pour le traitement d'échappement) Exemple) C: \ Users \ YourName \ Desktop \ Folder
Une fois exécuté, un dossier appelé «converti» sera créé au même emplacement que le fichier, et le fichier converti y sera enregistré (sauf pour Shift-JIS).
** Raison de la fabrication ** Lorsque je suis passé de l'iPhone à Android, je n'avais pas l'application de mémo (Textforce) que j'utilisais sur Android, donc je suis passé à une autre application de mémo (Simplenote), et lorsque j'ai porté les mémos précédents, les mémos créés sur le PC étaient différents en raison de la différence de code de caractère. Parce que tous les personnages ont été déformés. Je n'aurais pas eu à le faire moi-même si j'avais une application légère qui pourrait être utilisée sur Android et lire du texte au format Shift-JIS qui pourrait être facilement synchronisé sur un ordinateur ou un smartphone ... S'il vous plaît laissez-moi savoir si quelqu'un recommande
SJIS2UTF8.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
public class SJIS2UTF {
public static void main(String[] args) {
SJIS2UTF stu = new SJIS2UTF();
stu.readFolder(new File("Chemin du dossier"));
}
public void readFolder(File dir) {
File[] files = dir.listFiles();
String fileName;
if (files == null) {
return;
}
for (File file : files) {
if (!file.exists()) {
continue;
} else if (file.isDirectory()) {
readFolder(file);
} else if (file.isFile()) {
try {
byte[] byteOfFile = convertFile(file);
fileName = file.getName();
if (isSJIS(byteOfFile)) {
encodeStoU(file, fileName);
} else {
System.out.println(fileName + "N'est pas SJIS");
}
} catch (IOException e) {
System.out.println("Erreur IOException");
}
}
}
}
public void encodeStoU(File file, String fileName) {
String parentPath = file.getParent();
String sourcePath = parentPath + "\\" + fileName;
String destFolder = parentPath + "\\converted";
String destPath = parentPath + "\\converted\\" + fileName;
File folder = new File(destFolder);
if (!folder.exists()) {
try {
Files.createDirectory(Paths.get(destFolder));
Files.createFile(Paths.get(destFolder, fileName));
} catch (IOException e1) {
e1.printStackTrace();
}
}
try {
File sourceFile = new File(sourcePath);
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(sourceFile), "Shift-JIS"));
File destFile = new File(destPath);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destFile), "UTF-8"));
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public byte[] convertFile(File file) throws IOException {
return Files.readAllBytes(file.toPath());
}
public static boolean isSJIS(byte[] src) {
try {
byte[] tmp = new String(src, "Shift_JIS").getBytes("Shift_JIS");
return Arrays.equals(tmp, src);
} catch (UnsupportedEncodingException e) {
return false;
}
}
}
Recommended Posts