APK hataları

Java'da Excel için ə harfi bozulur

FileWriter dosyayı sistem tablosuyla yazar. Azerbaycan Windows'unda bu çoğu zaman Cp1254'tür. Orada ə yoktur, harf ? olur.

Files.writeString UTF-8 yazar ama başa üç bayt koymaz. Excel o dosyayı yine sistem tablosuyla açabilir. ödəyici o zaman ödÉ™yici gibi görünür.

Başa EF BB BF koy. Cp1254 yazma.

import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;

byte[] bom = new byte[] {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF};
byte[] metn = "ad\nAzərbaycan\n".getBytes(StandardCharsets.UTF_8);
byte[] fayl = new byte[bom.length + metn.length];
System.arraycopy(bom, 0, fayl, 0, bom.length);
System.arraycopy(metn, 0, fayl, bom.length, metn.length);
Files.write(Path.of("metn.csv"), fayl);