Java-апплет> Преобразование «Unicode в Hex» (получить Unicode из TextArea и отобразить значения HEX) - PullRequest
0 голосов
/ 02 апреля 2011

У меня возникли проблемы с преобразованием UNICODE в значения HEX. Я не смог найти подходящую ссылку в Интернете, и обсуждение в StackOverflow основано на "HEX to unicode only".

Что мне нужно, так этокое-что похожее, но некоторые модификации вроде этого (ТОЛЬКО Java ускользает)

http://javaboutique.internet.com/unicode/

В приведенном выше апплете отображаются значения HEX UTF-8, которые вставлены в TextArea.

Что мне нужно, так это получить значения HEX Unicode в TextArea и назначить их в переменной или отобразить их.

Базовый запуск, который я выполняю, заключается в следующем.

import java.awt.*;
import java.applet.*;

public class unicodeToHEX
extends      Applet
{
    TextField output;
    TextArea  input;

    public void init() {
        output = new TextField("Click for 'Text to speech' ",40);
        add(output);
        input  = new TextArea( "Type text here",8,40);
        add(input);
        output.setEditable(false);
    }

    public boolean gotFocus( Event evt, Object what ) {
        if (evt.target == input) {
        output.setText("Type text in below text area");
    }
    return super.gotFocus( evt, what );
    }

    public boolean lostFocus( Event evt, Object what ) {

        // Have super handle character entry:
        boolean result = super.lostFocus( evt, what );

        if (evt.target == input) {
            // Get string in input textfield:
            String s = input.getText();

            // Count newlines:
            int  len   = s.length();
            int  newlines = 0;
                for (int i = len;   i --> 0; ) {
                if (s.charAt(i) == '\n')   ++newlines;
            }





            // Report linecount in output textfield:
            output.setText("Text area contains " + newlines + " newlines");

        }

    return result;
    }
}

1 Ответ

0 голосов
/ 02 апреля 2011

Я думаю, вы ищете что-то вроде этого:

byte[] bytes = input.getText().getBytes("UTF-8");

StringBuilder sb = new StringBuilder(2 * bytes.length);
for (byte b : bytes) {
    sb.append("0123456789ABCDEF".charAt((b & 0xF0) >> 4));
    sb.append("0123456789ABCDEF".charAt((b & 0x0F)));
    sb.append("-"); // place "-" between each conversion
}
sb.deleteCharAt(sb.length() - 1); // remove trailing "-"
String hex = sb.toString();

output.setText("Text area UTF-8 in hex: " + hex);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...