Saya memiliki sebuah String dengan ",ñ" karakter dan saya memiliki beberapa masalah dengan itu. Saya perlu untuk mengkodekan String ini ke UTF-8 encoding. Saya telah mencoba dengan cara ini, tapi itu doesn't bekerja:
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
Bagaimana cara mengkodekan string utf-8?
Bagaimana menggunakan
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(myString)
String
benda-benda di Jawa menggunakan encoding UTF-16 yang bisa't dapat diubah.
Satu-satunya hal yang dapat memiliki encoding yang berbeda adalah byte[]
. Jadi, jika anda membutuhkan data UTF-8, maka anda perlu byte[]
. Jika anda memiliki String
yang berisi data yang tak terduga, maka masalah ini di beberapa sebelumnya di tempat yang salah dikonversi beberapa data biner ke String
(yaitu, itu adalah menggunakan pengkodean yang salah).
Di Java7 dapat anda gunakan:
import static java.nio.charset.StandardCharsets.*;
byte[] ptext = myString.getBytes(ISO_8859_1);
String value = new String(ptext, UTF_8);
Ini memiliki keuntungan lebih dari getBytes(String)
bahwa itu tidak menyatakan melempar UnsupportedEncodingException
.
Jika anda're menggunakan aplikasi yang lebih tua versi Jawa yang anda dapat mendeklarasikan charset konstanta diri sendiri:
import java.nio.charset.Charset;
public class StandardCharsets {
public static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
public static final Charset UTF_8 = Charset.forName("UTF-8");
//....
}
Java String internal selalu dikodekan dalam UTF-16 - tetapi anda benar-benar harus berpikir tentang hal seperti ini: encoding adalah cara untuk menerjemahkan antara String dan byte.
Jadi jika anda memiliki pengkodean masalah, dengan waktu yang anda miliki String, it's terlalu terlambat untuk memperbaiki. Yang anda butuhkan untuk memperbaiki tempat di mana anda membuat String dari file, DB atau koneksi jaringan.
Anda dapat mencoba cara ini.
byte ptext[] = myString.getBytes("ISO-8859-1");
String value = new String(ptext, "UTF-8");
Di saat aku pergi melalui masalah ini dan berhasil menyelesaikannya dengan cara berikut
pertama saya perlu impor
import java.nio.charset.Charset;
Kemudian saya harus menyatakan konstan untuk menggunakan UTF-8
dan ISO-8859-1
private static final Charset UTF_8 = Charset.forName("UTF-8");
private static final Charset ISO = Charset.forName("ISO-8859-1");
Kemudian saya bisa menggunakannya dengan cara berikut:
String textwithaccent="Thís ís a text with accent";
String textwithletter="Ñandú";
text1 = new String(textwithaccent.getBytes(ISO), UTF_8);
text2 = new String(textwithletter.getBytes(ISO),UTF_8);
String value = new String(myString.getBytes("UTF-8"));
dan, jika anda ingin membaca dari file teks dengan "ISO-8859-1" dikodekan:
String line;
String f = "C:\\MyPath\\MyFile.txt";
try {
BufferedReader br = Files.newBufferedReader(Paths.get(f), Charset.forName("ISO-8859-1"));
while ((line = br.readLine()) != null) {
System.out.println(new String(line.getBytes("UTF-8")));
}
} catch (IOException ex) {
//...
}
Saya telah menggunakan kode di bawah ini untuk mengkodekan karakter khusus dengan menentukan encode format.
String text = "This is an example é";
byte[] byteText = text.getBytes(Charset.forName("UTF-8"));
//To get original string from byte.
String originalString= new String(byteText , "UTF-8");
Cepat langkah-demi-langkah panduan bagaimana untuk mengkonfigurasi NetBeans default encoding UTF-8. Dalam hasil NetBeans akan membuat semua file baru di UTF-8 encoding.
NetBeans default encoding UTF-8 langkah-demi-langkah panduan
(contoh: netbeans_default_options="-J-Dfile.encoding=UTF-8"
)
Anda mengatur NetBeans default encoding UTF-8.
Anda netbeans_default_options mungkin berisi parameter tambahan di dalam tanda kutip. Dalam kasus seperti ini, add-J-Dfile.encoding=UTF-8 pada akhir dari string. Terpisah dengan ruang dari parameter-parameter yang lain.
Contoh:
netbeans_default_options="-J-klien -J-Xss128m -J-Xms256m -J-XX:PermSize=32m -J-belang-belang.laf.useScreenMenuBar=true -J-belang-belang.awt.grafis.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dfile.encoding=UTF-8"
berikut ini adalah link untuk Rincian lebih Lanjut