2010-07-01 1 views
0

HI,Конвертировать многобайтовый charater в шестнадцатеричный

У меня есть входящий файл, который передаст картотеку BizTalk. Мне нужно определить, есть ли 3 байтовый китайский символ в одном из полей файла (файл - xml). У меня уже есть идея, как найти 3-байтовый символ. Тем не менее, как я могу преобразовать это в значение Hex Value? Значение Hex - это то, что я отправлю на выходную схему, а затем отправлю на сервер DB2.

Спасибо.

ответ

0

Я предполагаю, что вы имеете дело с UTF-8. Это правда?

Если да, то вы хотите что-то вроде:

((c0 & 0xFFFF) < < 12) | ((c1 & 0xFFFFFF) < < 6) | (c2 & 0xFFFFFF)

+0

Большое спасибо Скотту. У меня есть код, который преобразует длину символа массива символов в длину DBCS. Можете ли вы помочь мне определить, откуда взялись цифры? если (c [длина] == 32) { c [длина] = (char) 12288; } если (c [длина] <127) {\t c [длина] = (char) (c [i] +65248); } Как я могу использовать тот же подход при преобразовании MBCS в DBCS? – lightyearsaway

+0

Формула, которую я дал, основана на UTF-8, который является конкретным типом многобайтовой кодировки символов. Это схема кодирования, в которой находятся ваши персонажи? Один из способов проверить - посмотреть на 3 символа в символе с несколькими байтами. Бинарное представление первого должно начинаться с 1110, а двоичное представление следующего 2 должно начинаться с 10. Если это неверно, то у вас нет UTF-8, а код, который я показал, вы не сработаете. Если это так, то код, который я показал вам, «удаляет» управляющие биты Unicode (1110, 10, 10) из трех символов и объединяет оставшиеся биты в int. –

 Смежные вопросы

  • Нет связанных вопросов^_^