1
package org.dbdoclet.service;
3
import java.util.regex.Matcher;
4
import java.util.regex.Pattern;
7
* Die Klasse <code>UnicodeServices</code> stellt eine Sammlung statischer
8
* Methoden zur Bearbeitung von Unicode zur Verfügung.
10
* @author <a href="mailto:michael.fuchs@unico-group.com">Michael Fuchs</a>
13
public class UnicodeServices {
15
private static Pattern pattern = Pattern.compile("\\\\u[0-9a-fA-F]{4}");
17
public static String escape(char c) {
19
char[] v = new char[1];
22
return escape(new String(v));
26
* Die Methode <code>escape</code> wandelt die Zeichenkette
27
* <code>str</code> in eine 7-bit ASCII Darstellung um.
29
* @param str <code>String</code>
30
* @return <code>String</code>
32
public static String escape(String str) {
38
StringBuffer buffer = new StringBuffer();
40
for (int i = 0; i < str.length(); i++) {
42
char c = str.charAt(i);
49
if (n >= 0 && n < 128 && c != '\n' && c != '\\') {
56
String hex = Integer.toHexString(n);
58
for (int j = 0; j < 4 - hex.length(); j++) {
66
return buffer.toString();
69
public static String unescape(String str) {
71
Matcher matcher = pattern.matcher(str);
73
char[] c = new char[1];
79
while (matcher.find()) {
81
escape = matcher.group();
82
c[0] = (char) Integer.parseInt(escape.substring(2), 16);
83
buffer = new String(c);
84
// System.out.println("buffer = " + buffer);
86
part1 = str.substring(0, matcher.start());
87
// System.out.println("part1 = " + part1);
89
part2 = str.substring(matcher.end());
90
// System.out.println("part2 = " + part2);
92
str = part1 + buffer + part2;
93
// System.out.println("str = " + str);
101
public static String removeUndefinedCharacters(String text) {
103
if (text == null || text.length() == 0) {
107
StringBuffer textBuffer = new StringBuffer(text);
108
StringBuffer buffer = new StringBuffer();
112
for (int i = 0; i < textBuffer.length(); i++) {
114
c = textBuffer.charAt(i);
116
if (c == '\n' || c == '\t') {
121
if (Character.isISOControl(c) == false
122
&& Character.isDefined(c) == true) {
128
return buffer.toString();