Decodes values of attributes in the DN encoded in hex into a UTF-8 String. : UTF8 Byte Hex « Development Class « Java

Home
Java
1.2D Graphics GUI
2.3D
3.Advanced Graphics
4.Ant
5.Apache Common
6.Chart
7.Class
8.Collections Data Structure
9.Data Type
10.Database SQL JDBC
11.Design Pattern
12.Development Class
13.EJB3
14.Email
15.Event
16.File Input Output
17.Game
18.Generics
19.GWT
20.Hibernate
21.I18N
22.J2EE
23.J2ME
24.JavaFX
25.JDK 6
26.JDK 7
27.JNDI LDAP
28.JPA
29.JSP
30.JSTL
31.Language Basics
32.Network Protocol
33.PDF RTF
34.Reflection
35.Regular Expressions
36.Scripting
37.Security
38.Servlets
39.Spring
40.Swing Components
41.Swing JFC
42.SWT JFace Eclipse
43.Threads
44.Tiny Application
45.Velocity
46.Web Services SOA
47.XML
Java » Development Class » UTF8 Byte Hex 




Decodes values of attributes in the DN encoded in hex into a UTF-8 String.
    
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.naming.InvalidNameException;

/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *  
 *    http://www.apache.org/licenses/LICENSE-2.0
 *  
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License. 
 *  
 */



/**
 * Various string manipulation methods that are more efficient then chaining
 * string operations: all is done in the same buffer without creating a bunch of
 * string objects.
 
 @author <a href="mailto:[email protected]">Dungeon Project</a>
 */
public class Main {
  /** &lt;hex> ::= [0x30-0x39] | [0x41-0x46] | [0x61-0x66] */
  private static final byte[] HEX_VALUE =
      
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1// 00 -> 0F
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1// 10 -> 1F
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1// 20 -> 2F
           0,  1,  2,  3,  4,  5,  6,  7,  8,  9, -1, -1, -1, -1, -1, -1// 30 -> 3F ( 0, 1,2, 3, 4,5, 6, 7, 8, 9 )
          -1101112131415, -1, -1, -1, -1, -1, -1, -1, -1, -1// 40 -> 4F ( A, B, C, D, E, F )
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1// 50 -> 5F
          -1101112131415, -1, -1, -1, -1, -1, -1, -1, -1, -1  // 60 -> 6F ( a, b, c, d, e, f )
      };
  /**
   * Decodes values of attributes in the DN encoded in hex into a UTF-8 
   * String.  RFC2253 allows a DN's attribute to be encoded in hex.
   * The encoded value starts with a # then is followed by an even 
   * number of hex characters.  
   */
  public static final String decodeHexStringString str throws InvalidNameException
  {
      if str == null || str.length() == )
      {
          throw new InvalidNameException"Expected string to start with a '#' character.  " +
              "Invalid hex encoded string for empty or null string."  );
      }
      
      char[] chars = str.toCharArray();
      if chars[0!= '#' )
      {
          throw new InvalidNameException"Expected string to start with a '#' character.  " +
                  "Invalid hex encoded string: " + str  );
      }
      
      // the bytes representing the encoded string of hex
      // this should be ( length - 1 )/2 in size
      byte[] decoded = new byte[ ( chars.length - >> ];

      for int ii = 1, jj = ; ii < chars.length; ii+=2, jj++ )
      {
          int ch = HEX_VALUE[chars[ii]] << 
              HEX_VALUE[chars[ii+1]];
          decoded[jjbyte ch;
      }
      
      return utf8ToStringdecoded );
  }
  /**
   * Return an UTF-8 encoded String
   
   @param bytes
   *            The byte array to be transformed to a String
   @return A String.
   */
  public static final String utf8ToStringbyte[] bytes )
  {
      if bytes == null )
      {
          return "";
      }

      try
      {
          return new Stringbytes, "UTF-8" );
      }
      catch UnsupportedEncodingException uee )
      {
          return "";
      }
  }
}

   
    
    
    
  














Related examples in the same category
1.Convert file in SJIS to UTF8
2.Return an UTF-8 encoded String
3.Return an UTF-8 encoded String by length
4.UTF8 String utilities
5.Return UTF-8 encoded byte[] representation of a String
6.Encodes octects (using utf-8) into Hex data
7.converting between byte arrays and hex encoded strings
8.Convert bytes To Hex
9.Convert hex To Bytes
10.Unicode 2 ASCII
11.Make bytes
12.String converterString converter
13.Show unicode stringShow unicode string
14.Normalizer
15.Convert from UTF-8 to Unicode
16.Convert from Unicode to UTF-8
17.Utility methods for handling UTF-8 encoded byte streams.
18.Read Windows Notepad Unicode files
19.UTF Util
20.To UTF8 InputStream
21.Returns {@code true} if the specified character sequence is a valid sequence of UTF-16 char values.
22.URL UTF8 Encoder
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.