public static String get_Unicode_I18n_String(String data)
  {
    if (data == null)
    {
      return null ;
    }

    StringBuffer buffer = new StringBuffer() ;

    int len = data.length() ;
    int index = 0 ;
    int escapeCounter = 0 ;

    while ( index < len )
    {
      char c1 = data.charAt(index) ;
      if (c1 == '\\')  //escape sequence ?
      {
        escapeCounter++ ;
      }
      else
      {
        if ((c1 == 'u') && (escapeCounter > 0))  // "\\..\\u" found
        {
          if ( (index +4) < len) // hex code available
          {
            buffer.append( data.substring( index-1, index+4)) ;
            index += 3 ;  // skip hex code
          }
        }
        else  // no escape sequence
        {
          if (c1 > 127)  // mask all not ascii characters
          {
            buffer.append("\\u") ;
            buffer.append( convertUniToHex( c1 ) ) ;
          }
          else
          {
            // don't forget the \\ signs
            for (int etc = 0 ; etc < escapeCounter ; etc++)
            {
              buffer.append( '\\' ) ;
            }
            buffer.append( c1 ) ;
          }
        }
        escapeCounter = 0 ;
      }

      index++ ;
    }
    return buffer.toString() ;
  }