Utf8 convert gb2312 искажен

Я прочитал китайскую строку с php на VB.net, это частичный код

header("Content-type: text/html; charset=utf-8"); 
...
echo "测试用";
...

затем прочтите с vb.net:

Dim Str() As Byte = Encoding.UTF8.GetBytes(chinese_string)
Dim newStr() As Byte = Encoding.Convert(System.Text.Encoding.UTF8, System.Text.Encoding.Default, Str)
Dim strUTF8 As String = Encoding.UTF8.GetString(newStr)

строка вывода - : "测试 �? .." но когда я повторяю "测试 用 的", это может отображаться нормально. если количество строк нечетное, оно будет искажено, но четное - это нормально.

Для меня этот код не имеет смысла. Вы начинаете с String и конвертируете его в Bytes, используя кодировку UTF8. Все идет нормально. Затем вы конвертируете эти Bytes из кодированного представления UTF8 исходного String в представление с использованием кодировки по умолчанию. Все еще хорошо. Наконец, вы берете Bytes, представляющий String в кодировке по умолчанию, и пытаетесь преобразовать их в String, используя кодировку UTF8. Почему вы ожидаете, что этот последний шаг принесет что-то полезное?

jmcilhinney 04.10.2018 04:04

при прямом чтении или использовании Encoding.GetEncoding ("GB2312"). GetString (newBy1) я получил "浼 佷 笟 鐗?"

Tony 04.10.2018 04:42

Что такое chinese_string? Как вы его получите?. Строка в кодировке UTF-8 может быть напрямую передана в свойство TextBox.Text без какой-либо промежуточной кодировки. Даже если текущий шрифт TextBox не поддерживает эти символы.

Jimi 04.10.2018 10:59

Я получаю от mysql, и кодировка mysql тоже utf8

Tony 05.10.2018 06:36

'mysqli_set_charset ($ con, "utf8"); $ sql = "ВЫБРАТЬ * ОТ пользователя WHERE UserID = '$ userid' ORDER BY ID"; если ($ result = mysqli_query ($ con, $ sql)) while ($ row = mysqli_fetch_array ($ result, MYSQL_ASSOC)) echo $ row ['Имя']. ​​"\ n";

Tony 05.10.2018 06:45

если я могу изменить php на echo iconv ("UTF-8", "GBK", $ row ['Name']), получить напрямую с php, он будет отображаться нормально, по какой-то причине я не могу изменить файлы php, просто может изменять файл VB.NET.

Tony 05.10.2018 06:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
62
0

Другие вопросы по теме