UTF - главный сайт о кодировках Unicode и UTF-8
UTF-8 (Unicode Transformation Format, 8-bit)
UTF-8 - это один из самых популярных и широко используемых форматов кодирования символов на компьютерах. Он предназначен для представления символов из всех возможных языков и символьных наборов в единой кодировке.
UTF-8 использует переменную длину кодирования, что означает, что различные символы занимают разное количество байтов. Он поддерживает символы Юникода, включая основные многоязычные плоскости, такие как латиница, кириллица, китайские и японские иероглифы, и многие другие.
Основным преимуществом UTF-8 является его универсальность и совместимость. Он может представлять практически любой символ из списка Юникода и при этом поддерживается практически всеми популярными языками программирования и операционными системами.
Примеры кода на работу с UTF-8 в различных языках программирования:
1. Python:
# Конвертирование строки в UTF-8
string = "Пример строки на русском языке"
utf8_string = string.encode('utf-8')
# Чтение, запись и обработка UTF-8 файлов
with open('file.txt', 'r', encoding='utf-8') as file:
contents = file.read()
with open('file.txt', 'w', encoding='utf-8') as file:
file.write("Пример текста на русском языке")
# Работа со строками UTF-8
string = "Пример строки на русском языке"
length = len(string)
sub_string = string[6:12]
2. Java:
import java.nio.charset.StandardCharsets;
public class UTF8Example {
public static void main(String[] args) {
// Конвертирование строки в UTF-8 байтовый массив
String string = "Пример строки на русском языке";
byte[] utf8Bytes = string.getBytes(StandardCharsets.UTF_8);
// Чтение, запись и обработка UTF-8 файлов
try {
byte[] fileContents = Files.readAllBytes(Paths.get("file.txt"));
String contents = new String(fileContents, StandardCharsets.UTF_8);
Files.write(Paths.get("file.txt"), "Пример текста на русском языке".getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
// Работа со строками UTF-8
String string = "Пример строки на русском языке";
int length = string.length();
String subString = string.substring(6, 12);
}
}
3. C++:
#include <iostream>
#include <fstream>
#include <string>
int main() {
// Конвертирование строки в UTF-8
std::string string = "Пример строки на русском языке";
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::wstring utf16_string = converter.from_bytes(string);
// Чтение, запись и обработка UTF-8 файлов
std::ifstream inputFile("file.txt");
std::wstring_convert<std::codecvt_utf8<wchar_t>> inputConverter;
std::wstring fileContents = inputConverter.from_bytes(
std::string(std::istreambuf_iterator<char>(inputFile),
std::istreambuf_iterator<char>()));
std::ofstream outputFile("file.txt");
std::wstring_convert<std::codecvt_utf8<wchar_t>> outputConverter;
outputFile << outputConverter.to_bytes(L"Пример текста на русском языке");
// Работа со строками UTF-8
std::string string = "Пример строки на русском языке";
int length = string.length();
std::string subString = string.substr(6, 6);
return 0;
}
Во всех приведенных примерах кода демонстрируются основные операции работы с UTF-8: конвертирование строк, чтение и запись файлов в формате UTF-8, а также манипуляции со строками UTF-8. Обратите внимание, что кодировка должна быть указана явно при чтении или записи файлов в формате UTF-8, чтобы избежать проблем с кодировкой символов.