de-vraag
  • Klausimai
  • Žymos
  • Vartotojai
Pranešimai
Apdovanojimai
Registracija
Užsiregistravę gausite pranešimus apie atsakymus ir komentarus į savo klausimus.
Prisijungti
Jei jau turite paskyrą, prisijunkite ir patikrinkite naujus pranešimus.
Už pridėtus klausimus, atsakymus ir komentarus bus skiriami apdovanojimai.
Daugiau
Šaltinis
Redaguoti
 mcherm
mcherm
Question

Kaip konvertuoti eilutes į UTF8 baitų masyvus ir iš jų "Java

"Java" programoje turiu eilutę ir noriu ją užkoduoti kaip baitų masyvą (UTF8 ar kita kodavimo forma). Arba turiu baitų masyvą (kokiu nors žinomu kodavimu) ir noriu jį konvertuoti į "Java" eilutę. Kaip atlikti šias konversijas?

224 2008-09-18T00:11:21+00:00 3
Alvin Wong
Alvin Wong
Redaguotas klausimas priešpietr sausis 2013 в 6:58
Programavimas
encoding
character-encoding
java
string
Šis klausimas turi 1 atsakymas atsakymų anglų kalba, norėdami juos perskaityti prisijunkite prie savo paskyros.
Solution / Answer
 mcherm
mcherm
priešpietr rugsėjis 2008 в 12:16
2008-09-18T00:16:39+00:00
Daugiau
Šaltinis
Redaguoti
#8475328

Konvertuokite iš eilutės į baitą[]:

String s = "some text here";
byte[] b = s.getBytes(StandardCharsets.UTF_8);

Konvertuoti iš baito[] į eilutę:

byte[] b = {(byte) 99, (byte)97, (byte)116};
String s = new String(b, StandardCharsets.US_ASCII);

Žinoma, turėtumėte naudoti teisingą kodavimo pavadinimą. Mano pavyzdžiuose buvo naudojami US-ASCII ir UTF-8 - du dažniausiai pasitaikantys kodai.

Fokko Driesprong
Fokko Driesprong
Redaguotas atsakymas priešpietr vasaris 2019 в 10:53
326
0
Jorge Ferreira
Jorge Ferreira
priešpietr rugsėjis 2008 в 12:13
2008-09-18T00:13:15+00:00
Daugiau
Šaltinis
Redaguoti
#8475326
String original = "hello world";
byte[] utf8Bytes = original.getBytes("UTF-8");
 Marged
Marged
Redaguotas atsakymas popietr lapkritis 2015 в 12:53
17
0
 McDowell
McDowell
priešpietr rugsėjis 2008 в 11:32
2008-09-18T11:32:38+00:00
Daugiau
Šaltinis
Redaguoti
#8475329

Galite konvertuoti tiesiogiai naudodami String(byte[], String) konstruktorių ir getBytes(String) metodą. "Java" pateikia galimus simbolių rinkinius per Charset klasę. JDK dokumentacijoje pateikiamas palaikomų kodų sąrašas.

90 % atvejų tokie konvertavimai atliekami srautams, todėl naudokite Reader/Writer klases. Negalima inkrementiniu būdu dekoduoti naudojant "String" metodus savavališkiems baitų srautams - paliksite save atvirą klaidoms, susijusioms su daugiabalyčiais simboliais.

14
0
Pridėti klausimą
Kategorijos
Visi
Technologijos
Kultūra / poilsis
Gyvenimas / Menai
Mokslas
Profesionalus
Verslas
Vartotojai
Visi
Naujas
Populiarus
1
Elena Nudel
Registruota prieš 10 valandų
2
firdaus faizal
Registruota prieš 11 valandų
3
Виталий Теслюк
Registruota prieš 2 dienas
4
shokir qochqorov
Registruota prieš 2 dienas
5
Roxana Elizabeth CASTILLO Avalos
Registruota prieš 1 savaitę
BG
DE
EL
ES
FR
ID
IT
JA
LT
NL
PT
RU
SK
TR
ZH
© de-vraag 2022
Šaltinis
stackoverflow.com
pagal licenciją cc by-sa 3.0 nurodant autorystę