- * Konvertiert Unix-Linefeeds in Win-Linefeeds
- * @param s
- * @return Konvertierter String
- */
- public static String unixLineFeedsToWin(String s) {
- int i = -1;
- while (true) {
- i = s.indexOf('\n', i+1);
- if (i < 0) break;
- if ((i == 0 || s.charAt(i-1) != '\r') &&
- (i == s.length()-1 || s.charAt(i+1) != '\r')) {
- s = s.substring(0, i)+'\r'+s.substring(i);
- i++;
- }
- }
- return s;
- }
-
-
- /**
- * verwandelt einen String in eine gültige Url, konvertiert Sonderzeichen
- * und Spaces werden zu Underscores
- *
- * @return gültige Url
- */
- public static String convert2url(String s) {
- s = toLowerCase(s);
- StringBuffer buf = new StringBuffer();
- for(int i = 0; i < s.length(); i++ ) {
- switch( s.charAt( i ) ) {
- case 'ö':
- buf.append( "oe" ); break;
- case 'ä':
- buf.append( "ae" ); break;
- case 'ü':
- buf.append( "ue" ); break;
- case 'ã':
- buf.append( "a" ); break;
- case '´':
- case '.':
- buf.append( "_" ); break;
- case ' ':
- if( buf.charAt( buf.length() - 1 ) != '_' ) {
- buf.append( "_" );
- }
- break;
- default:
- buf.append( s.charAt( i ) );
- }
- }
- return buf.toString();
- }
-
- /**
- * wandelt Sonderzeichen in Quotes um
- *
- * @return Kovertierter String
- */
- public static String encodeHtml(String s) {
- StringBuffer buf = new StringBuffer();
- for(int i=0;i < s.length(); i++ ) {
-
- /** @todo looks inefficient */
- if (s.charAt(i)=='&') {
- // convert html to xml-parsable representation
- if( s.indexOf( "ö", i ) == i ) {
- buf.append( "ö" ); i += 5;
- continue;
- }
- if( s.indexOf( "ä", i ) == i ) {
- buf.append( "ä" ); i += 5;
- continue;
- }
- if( s.indexOf( "ü", i ) == i ) {
- buf.append( "ü" ); i += 5;
- continue;
- }
- if( s.indexOf( "Ö", i ) == i ) {
- buf.append( "Ö" ); i += 5;
- continue;
- }
- if( s.indexOf( "Ä", i ) == i ) {
- buf.append( "Ä" ); i += 5;
- continue;
- }
- if( s.indexOf( "Ü", i ) == i ) {
- buf.append( "Ü" ); i += 5;
- continue;
- }
- if( s.indexOf( "ß", i ) == i ) {
- buf.append( "ß" ); i += 6;
- continue;
- }
-
- /** @todo should only escape outside of tags */
-
- if( s.indexOf( """, i ) == i ) {
- buf.append( "ß" ); i += 5;
- continue;
- }
- if( s.indexOf( "–", i ) == i ) {
- buf.append( "–" ); i += 6;
- continue;
- }
- if( s.indexOf( "—", i ) == i ) {
- buf.append( "—" ); i += 6;
- continue;
- }
- if( s.indexOf( "“", i ) == i ) {
- buf.append( "“" ); i += 6;
- continue;
- }
- if( s.indexOf( "”", i ) == i ) {
- buf.append( "”" ); i += 6;
- continue;
- }
- if( s.indexOf( "„", i ) == i ) {
- buf.append( "„" ); i += 6;
- continue;
- }
-
- //looks pretty stupid
- if( s.indexOf( "<", i ) == i ) {
- buf.append( "<" ); i += 3;
- continue;
- }
- if( s.indexOf( ">", i ) == i ) {
- buf.append( ">" ); i += 3;
- continue;
- }
- if( s.indexOf( "´", i ) == i ) {
- buf.append( "´" ); i += 6;
- continue;
- }
- if( s.indexOf( " ", i ) == i ) {
- buf.append( " " ); i += 5;
- continue;
- }
- //has to be the last
- if( s.indexOf( "&", i ) == i ) {
- buf.append( "&" ); i += 0;
- continue;
- }
- }
- // convert umlauts an other special charakters
- switch( s.charAt(i) ) {
- case 'ö': buf.append( "ö" ); break;
- case 'ä': buf.append( "ä" ); break;
- case 'ü': buf.append( "ü" ); break;
- case 'Ö': buf.append( "Ö" ); break;
- case 'Ä': buf.append( "Ä" ); break;
- case 'Ü': buf.append( "Ü" ); break;
- case 'ß': buf.append( "ß" ); break;
- case 'é': buf.append( "é" ); break;
- case 'è': buf.append( "è" ); break;
- case 'á': buf.append( "á" ); break;
- case 'à': buf.append( "à" ); break;
- case 'â': buf.append( "â" ); break;
- case 'ã': buf.append( "ã" ); break;
- case '¬': buf.append( "¬" ); break;
- case '¹': buf.append( "¹" ); break;
- case '²': buf.append( "²" ); break;
- case '³': buf.append( "³" ); break;
- case '¼': buf.append( "¼" ); break;
- case '½': buf.append( "½" ); break;
- case '¾': buf.append( "¾" ); break;
- case '¶': buf.append( "¶" ); break;
- case 'æ': buf.append( "æ" ); break;
- case 'ð': buf.append( "ð" ); break;
- case '|': buf.append( "¦" ); break;
- case '·': buf.append( "·" ); break;
- case '°': buf.append( "°" ); break;
- case '§': buf.append( "§" ); break;
- case 'ø': buf.append( "ø" ); break;
- case 'ç': buf.append( "ç" ); break;
- case '¤': buf.append( "¤" ); break;
- case 'ª': buf.append( "ª" ); break;
- case 'Ç': buf.append( "Ç" ); break;
- case 'Ã': buf.append( "Ã" ); break;
- case 'Â': buf.append( "Â" ); break;
- case 'Æ': buf.append( "Æ" ); break;
- case '©': buf.append( "©" ); break;
- case '®': buf.append( "®" ); break;
- case '¥': buf.append( "¥" ); break;
- case 'Þ': buf.append( "þ" ); break;
- case '¯': buf.append( "¯" ); break;
- case 'Ð': buf.append( "Ð" ); break;
- case 'º': buf.append( "º" ); break;
- case '¡': buf.append( "¡" ); break;
- case '£': buf.append( "£" ); break;
- case '±': buf.append( "±" ); break;
- case '¿': buf.append( "¿" ); break;
- case 'Ø': buf.append( "Ø" ); break;
- case 'Á': buf.append( "À" ); break;
- case 'À': buf.append( "Á" ); break;
- case 'É': buf.append( "È" ); break;
- case 'È': buf.append( "É" ); break;
- case 'ù': buf.append( "ú" ); break;
- case 'ñ': buf.append( "ñ" ); break;
- case 'Ñ': buf.append( "Ñ" ); break;
- case 'µ': buf.append( "µ" ); break;
- case 'Í': buf.append( "Ì" ); break;
- case 'Ì': buf.append( "Í" ); break;
- case 'í': buf.append( "ì" ); break;
- case 'ì': buf.append( "í" ); break;
- case 'î': buf.append( "î" ); break;
- case 'Î': buf.append( "Î" ); break;
- case 'ó': buf.append( "ó" ); break;
- case 'Ó': buf.append( "Ò" ); break;
- case 'ò': buf.append( "Î" ); break;
- case 'Ò': buf.append( "Ó" ); break;
- case 'ô': buf.append( "ô" ); break;
- case 'Ô': buf.append( "Ô" ); break;
- case 'õ': buf.append( "õ" ); break;
- case 'Õ': buf.append( "Õ" ); break;
- case 'ý': buf.append( "ý" ); break;
- case 'Ý': buf.append( "Ý" ); break;
- case 'û': buf.append( "û" ); break;
- case 'Û': buf.append( "Û" ); break;
- case 'ú': buf.append( "ù" ); break;
- case 'Ú': buf.append( "Ù" ); break;
- case 'Ù': buf.append( "Ú" ); break;
- case 'Ê': buf.append( "Ê" ); break;
- case 'ê': buf.append( "ê" ); break;
- case 'å': buf.append( "å" ); break;
- case 'Å': buf.append( "Å" ); break;
- case 'ë': buf.append( "ë" ); break;
- case 'Ë': buf.append( "Ë" ); break;
- case 'ÿ': buf.append( "ÿ" ); break;
- case 'ï': buf.append( "ï" ); break;
- case 'Ï': buf.append( "Ï" ); break;
- case '«': buf.append( "«" ); break;
- case '»': buf.append( "»" ); break;
- case '\'': buf.append( "´" ); break;
- case '\"': buf.append( """ ); break;
- //case '\u8211': buf.append( "–" ); break;
- //case '\u8212': buf.append( "—" ); break;
- //case '\u8220': buf.append( "“" ); break;
- //case '\u8221': buf.append( "”" ); break;
- //case '\u8222': buf.append( "„" ); break;
- //case '\"': buf.append( """ ); break;
- default: buf.append( s.charAt(i) );
- }
-
- }
- return buf.toString();
- }
-
-
- public static String decodeHTMLinTags(String s){
- StringBuffer buffer = new StringBuffer();
- boolean start = false;
- boolean stop = false;
- int startIndex = 0;
- int stopIndex = 0;
- int temp = 0;
-
- for(int i=0;i<s.length();i++){
- if(s.charAt(i)=='<'){
- start = true;
- startIndex = i;
- } else if(s.charAt(i)=='>'){
- stop = true;
- stopIndex = i;
-
- if(start && stop){
- buffer.append(s.substring(temp,startIndex));
- buffer.append(replaceQuot(s.substring(startIndex,stopIndex+1)));
- i= temp= stopIndex+1;
- start= stop= false;
- }
- }
- }
- if(stopIndex>0){
- buffer.append(s.substring(stopIndex+1));
- return buffer.toString();
- } else {
- return s;
- }
- }
-
- public static String replaceQuot(String s) {
- StringBuffer buffer = new StringBuffer();
- for(int j = 0; j < s.length();j++){
- if(s.charAt(j)=='&'){
- if(s.indexOf( """,j) == j) {
- buffer.append( "\"" );
- j += 5;
- }//if
- } else {
- buffer.append(s.charAt(j));
- }//else
- }//for
- return buffer.toString();
- }
-
- /** wandelt Quotes in Sonderzeichen um
- */
- /**
- public static String decodeHtml(String s) {
- StringBuffer buf = new StringBuffer();
- for(int i=0;i < s.length(); i++ ) {
- if( s.indexOf( "ö", i ) == i ) {
- buf.append( "ö" ); i += 5;
- continue;
- }
- if( s.indexOf( "ä", i ) == i ) {
- buf.append( "ä" ); i += 5;
- continue;
- }
- if( s.indexOf( "ü", i ) == i ) {
- buf.append( "ü" ); i += 5;
- continue;
- }
- if( s.indexOf( "Ö", i ) == i ) {
- buf.append( "Ö" ); i += 5;
- continue;
- }
- if( s.indexOf( "Ä", i ) == i ) {
- buf.append( "Ä" ); i += 5;
- continue;
- }
- if( s.indexOf( "Ü", i ) == i ) {
- buf.append( "Ü" ); i += 5;
- continue;
- }
- if( s.indexOf( "ß", i ) == i ) {
- buf.append( "ß" ); i += 6;
- continue;
- }
- if( s.indexOf( """, i ) == i ) {
- buf.append( "\"" ); i += 5;
- continue;
- }
- buf.append( s.charAt(i) );
- }
- return buf.toString();
- }
- */
-
- /**
- * schnellere Variante der String.toLowerCase()-Routine
- *
- * @return String in Kleinbuchsten
- */
- public static String toLowerCase(String s) {
- int l = s.length();
- char[] a = new char[l];
- for (int i = 0; i < l; i++)
- a[i] = Character.toLowerCase(s.charAt(i));
- return new String(a);
- }
-
- /**
- * Findet <code>element</code> im String-Array <code>array</code>
- * @param array
- * @param element
- * @return Fundstelle als int oder -1
- */
- public static int indexOf(String[] array, String element) {
- if (array != null)
- for (int i = 0; i < array.length; i++)
- if (array[i].equals(element))
- return i;
- return -1;
- }
-
- /**
- * Testet auf Vorkommen von <code>element</code> in <code>array</code>
- * @param array String-Array
- * @param element
- * @return true wenn <code>element</code> vorkommt, sonst false
- */
- public static boolean contains(String[] array, String element) {
- return indexOf(array, element) >= 0;
- }
-
- /**
- * Ermittelt CRC-Prüfsumme von String <code>s</code>
- * @param s
- * @return CRC-Prüfsumme
- */
- public static int getCRC(String s) {
- int h = 0;
- char val[] = s.toCharArray();
- int len = val.length;
-
- for (int i = 0 ; i < len; i++) {
- h &= 0x7fffffff;
- h = (((h >> 30) | (h << 1)) ^ (val[i]+i));
- }
-
- return (h << 8) | (len & 0xff);
- }
-
- /**
- * Liefert Default-Wert def zurück, wenn String <code>s</code>