我在将UNICODE转换为HEX值时遇到了一些麻烦。 我在网上找不到合适的参考,StackOverflow中的讨论基于“HEX to unicode only”。
我需要的是一些类似但有些修改的东西(仅限Java逃脱)
http://javaboutique.internet.com/unicode/
上面的applet显示粘贴在TextArea上的UTF-8的十六进制值。
我需要的是获取TextArea的Unicode的HEX值并将它们分配给变量或显示它们。
基本的启动我如下。
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;
}
}
答案 0 :(得分:0)
我认为你正在寻找这样的东西:
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);