Java to utf 8 online

Конвертация Unicode в UTF-8 в Java

Unicode – это международный стандарт кодировки символов, который может представлять большинство письменных языков по всему миру. Юникод использует шестнадцатеричное для представления символа. Unicode – это 16-битная система кодирования символов. Наименьшее значение равно \ u0000, а самое высокое значение равно \ uFFFF.

UTF-8 – кодировка символов переменной ширины. UTF-8 может быть сжатым как ASCII, но также может содержать любые символы Юникода с некоторым увеличением размера файла. UTF расшифровывается как Unicode Transformation Format. «8» означает, что он выделяет 8-битные блоки для обозначения символа. Количество блоков, необходимых для представления символа, варьируется от 1 до 4.

Чтобы конвертировать Unicode в UTF-8 в Java, мы используем метод getBytes(). Он кодирует строку в последовательность байтов и возвращает массив байтов.

Объявление

Метод getBytes() объявляется следующим образом.

public byte[] getBytes(String charsetName)

где charsetName – это конкретный набор символов, с помощью которого String кодируется в массив байтов.

Давайте посмотрим программу для преобразования Unicode в UTF-8 в Java с использованием метода getBytes().

Пример 1

public class Example < public static void main(String[] args) throws Exception < String str1 = "\u0000"; String str2 = "\uFFFF"; byte[] arr = str1.getBytes("UTF-8"); byte[] brr = str2.getBytes("UTF-8"); System.out.println("UTF-8 for \\u0000"); for(byte a: arr) < System.out.print(a); >System.out.println("\nUTF-8 for \\uffff" ); for(byte b: brr) < System.out.print(b); >> >

Итог

UTF-8 for \u0000 0 UTF-8 for \uffff -17-65-65

Описание

String str1 = "\u0000"; String str2 = "\uFFFF";
  1. Строка str1 назначается \ u0000, что является самым низким значением в Юникоде. Строке str2 присваивается значение \ uFFFF, которое является самым высоким значением в Юникоде.
  2. Чтобы преобразовать их в UTF-8, мы используем метод getBytes(“UTF-8”). Это дает нам массив байтов следующим образом –
byte[] arr = str1.getBytes("UTF-8"); byte[] brr = str2.getBytes("UTF-8");

for(byte a: arr) < System.out.print(a); >for(byte b: brr)

  1. Чтобы преобразовать UTF-8 в Unicode, мы создаем объект String, который имеет параметры в качестве имени массива байтов UTF-8, а charset – массив байтов, которым он является, то есть в UTF-8.
Читайте также:  Дано трехзначное число найдите сумму его чисел питон

Пример 2

Давайте посмотрим программу для преобразования UTF-8 в Unicode путем создания нового объекта String.

Итог

Сначала мы преобразовали данную строку Unicode в UTF-8 для последующей проверки с помощью метода getBytes() –

String str = "hey\u6366"; byte[] charset = str.getBytes("UTF-8")

Затем мы преобразовали байтовый массив charset в Unicode, создав новый объект String следующим образом:

String result = new String(charset, "UTF-8"); System.out.println(result);

Средняя оценка 4.1 / 5. Количество голосов: 9

Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.

Видим, что вы не нашли ответ на свой вопрос.

Напишите комментарий, что можно добавить к статье, какой информации не хватает.

Источник

Закодируйте строку в UTF-8 на Java

В этом уроке мы рассмотрим, как кодировать строку в UTF-8 на Java – с помощью стандартных наборов символов, getBytes() с помощью ByteBuffer и Apache Commons с примерами.

Вступление

При работе со строками | в Java нам часто приходится кодировать их в определенную кодировку, такую как UTF-8 .

UTF-8 представляет собой кодировку символов переменной ширины, которая использует от одного до четырех восьмибитных байтов для представления всех допустимых кодовых точек Юникода .

Кодовая точка может представлять отдельные символы, но также иметь другие значения, например, для форматирования. “Переменная ширина” означает, что он кодирует каждую кодовую точку с разным количеством байтов (от одного до четырех), и в качестве меры экономии места обычно используемые кодовые точки представлены меньшим количеством байтов, чем те, которые используются реже.

UTF-8 использует один байт для представления кодовых точек из 0-127 , сделав первый 128 код указывает взаимно однозначную карту с символами ASCII, поэтому UTF-8 обратно совместим с ASCII.

Примечание: Java кодирует все строки в UTF-16, который использует минимум два байта для хранения кодовых точек. Зачем тогда нам нужно было бы конвертировать в UTF-8?

Не все входные данные могут быть UTF-16, или UTF-8, если на то пошло. На самом деле вы можете получить строку в кодировке ASCII, которая поддерживает не так много символов, как UTF-8. Кроме того, не все выходные данные могут обрабатывать UTF-16, поэтому имеет смысл преобразовать в более универсальный UTF-8.

Мы будем работать с несколькими Строками , которые содержат символы Юникода , с которыми вы, возможно, не сталкиваетесь ежедневно, такие как č , β и あ , имитирующие ввод данных пользователем.

Давайте выпишем пару строк:

String serbianString = "Šta radiš?"; // What are you doing? String germanString = "Wie heißen Sie?"; // What's your name? String japaneseString = "よろしくお願いします"; // Pleased to meet you.

Теперь давайте воспользуемся Строкой(байт[] байт, кодировка кодировки) конструктором строки, чтобы воссоздать эти строки, но с другой кодировкой , имитирующей ввод ASCII , который поступил к нам в первую очередь:

String asciiSerbianString = new String(serbianString.getBytes(), StandardCharsets.US_ASCII); String asciigermanString = new String(germanString.getBytes(), StandardCharsets.US_ASCII); String asciijapaneseString = new String(japaneseString.getBytes(), StandardCharsets.US_ASCII); System.out.println(asciiSerbianString); System.out.println(asciigermanString); System.out.println(asciijapaneseString);

Как только мы создадим эти строки и закодируем их в виде символов ASCII, мы сможем их распечатать:

В то время как первые две строки содержат всего несколько символов, которые не являются допустимыми символами ASCII, последняя строка не содержит никаких .

Чтобы избежать этой проблемы, мы можем предположить, что не все входные данные уже могут быть закодированы по нашему вкусу – и закодировать их, чтобы самим решить такие случаи. Существует несколько способов кодирования строки в UTF-8 на Java.

Кодирование строки в Java просто означает ввод определенных байтов в массив байтов, который представляет собой строку, предоставляя дополнительную информацию, которую можно использовать для ее форматирования, как только мы сформируем экземпляр String .

Использование метода getBytes()

Класс String , состоящий из байтов, естественно, предлагает метод getBytes () , который возвращает массив байтов, используемый для создания строки. Поскольку кодирование на самом деле просто манипулирует этим массивом байтов, мы можем поместить этот массив через | кодировку , чтобы сформировать его при получении данных.

По умолчанию, без указания кодировки , байты кодируются с использованием платформы по умолчанию Кодировки – которая может не быть UTF-8 или UTF-16. Давайте возьмем байты строки и распечатаем их:

String serbianString = «Šta radiš?»; // What are you doing? byte[] bytes = serbianString.getBytes(StandardCharsets.UTF_8); for (byte b : bytes)

-59 -96 116 97 32 114 97 100 105 -59 -95 63

Это кодовые точки для наших закодированных символов, и они не очень полезны для человеческих глаз. Хотя, опять же, мы можем использовать конструктор String для создания удобочитаемой строки из этой самой последовательности. Учитывая тот факт , что мы закодировали этот массив байтов в UTF_8 , мы можем продолжить и безопасно создать новую строку из этого:

String utf8String = new String(bytes); System.out.println(utf8String);

Примечание: Вместо того, чтобы кодировать их с помощью метода getBytes () , вы можете также кодировать байты с помощью конструктора строк:

String utf8String = new String(bytes, StandardCharsets.UTF_8);

Теперь выводится та же самая строка, с которой мы начали, но закодированная в UTF-8:

Кодируйте строку в UTF-8 с помощью стандартных наборов символов Java 7

Git Essentials

Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!

Начиная с Java 7 , мы познакомились с классом Стандартные наборы символов , в котором доступно несколько наборов символов , таких как US_ASCII , ISO_8859_1 , UTF_8 и UTF-16 среди прочих.

Каждая Кодировка имеет кодирование() и декодирование() метод, который принимает Буфер символов (который реализует последовательность символов , такую же, как Строка ). С практической точки зрения – это означает, что мы можем вставить строку в encode() методы кодировки .

Метод encode() возвращает ByteBuffer , который мы можем легко снова превратить в строку.

Ранее, когда мы использовали наш метод getBytes () , мы сохраняли полученные байты в массиве байтов, но при использовании класса StandardCharsets все немного по-другому. Сначала нам нужно использовать класс ByteBuffer для хранения наших байтов. Затем нам нужно как кодировать , так и декодировать обратно наши недавно выделенные байты. Давайте посмотрим, как это работает в коде:

String japaneseString = "よろしくお願いします"; // Pleased to meet you. ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(japaneseString); String utf8String = new String(byteBuffer.array(), StandardCharsets.UTF_8); System.out.println(utf8String);

Выполнение этого кода приводит к:

Закодируйте строку в UTF-8 с помощью Apache Commons

Пакет кодеков Apache Commons содержит простые кодеры и декодеры для различных форматов, таких как Base64 и Шестнадцатеричный . В дополнение к этим широко используемым кодерам и декодерам, пакет кодеков также поддерживает набор утилит фонетического кодирования .

Чтобы мы могли использовать кодек Apache Commons, нам нужно добавить его в наш проект в качестве внешней зависимости.

Используя Maven, давайте добавим зависимость commons-кодек в ваш pom.xml файл:

 commons-codec commons-codec 1.15  

В качестве альтернативы, если вы используете Gradle:

compile 'commons-codec:commons-codec:1.15'

Теперь мы можем использовать служебные классы Apache Commons – и, как обычно, мы будем использовать класс StringUtils .

Это позволяет нам преобразовывать строки в байты и из байтов, используя различные кодировки, требуемые спецификацией Java. Этот класс является нулевым и потокобезопасным, поэтому у нас есть дополнительный уровень защиты при работе со строками.

Для кодирования строки в UTF-8 с помощью класса StringUtils Apache Common мы можем использовать метод getBytes Utf 8 () , который работает так же, как метод getBytes() с указанной кодировкой :

String germanString = "Wie heißen Sie?"; // What's your name? byte[] bytes = StringUtils.getBytesUtf8(germanString); String utf8String = StringUtils.newStringUtf8(bytes); System.out.println(utf8String);

Или , вы можете использовать обычный StringUtils класс из commons-lang3 зависимости:

 org.apache.commons commons-lang3  

Если вы используете Gradle:

implementation group: ‘org.apache.commons’, name: ‘commons-lang3’, version: $

И теперь мы можем использовать почти тот же подход, что и с обычными строками:

String germanString = "Wie heißen Sie?"; // What's your name? byte[] bytes = StringUtils.getBytes(germanString, StandardCharsets.UTF_8); String utf8String = StringUtils.toEncodedString(bytes, StandardCharsets.UTF_8); System.out.println(utf8String);

Благодаря этому подход является потокобезопасным и нулевым:

Вывод

В этом уроке мы рассмотрели как кодировать строку Java в UTF-8 . Мы рассмотрели несколько подходов – ручное создание строки с использованием getBytes() и управление ими, класс Java 7 Стандартные наборы символов , а также Apache Commons.

Читайте ещё по теме:

Источник

UTF8 Encode

Next-Gen App & Browser Testing Cloud

The UTF-8 encoding system is a variable-width character encoding standard for electronic communication.

Categories

Input

Output

What is UTF8 Encoder?

UTF-8 is an encoding system for Unicode that can translate any Unicode character to a matching unique binary string and vice versa.

What is the full form of UTF-8?

The full form of UTF-8 is Unicode Transformation Format in 8-bit format. UTF-8 is a character encoding standard that employs 8-bit code units to represent Unicode characters.

What is the purpose of UTF-8 Encoder?

The purpose of a UTF-8 Encoder is to encode characters using 8-bit code units to represent Unicode characters. It enables more efficient use of storage space for the text containing a blend of ASCII and non-ASCII characters.

How does UTF-8 Encoder work?

Unicode Transformation Format 8 (UTF-8) is a character encoding scheme. It replaces each character in an earlier Unicode scheme with a string of binary digits that represent the character’s numeric code point. Then, the same binary digits can be converted back into the original character.

How to encode to UTF-8?

There are various methods to encode text to UTF-8. Some common methods include using built-in functions of programming languages like Java, and Python, using third-party libraries, or free online UTF-8 Encoders.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Источник

Оцените статью