Unicode to hex conversion

Guys, I look at ASCII table given to me for Czech chars and hex value for character "á" is E1. But when I use rawtohex function to get hex value I get below output.
WHY ?
SQL> select rawtohex('á') from dual;
C3A1
How can I get value E1 ? Thanks

My Oracle version is
Oracle9i Enterprise Edition Release 9.2.0.1.0 - 64bit Production
PL/SQL Release 9.2.0.1.0 - Production
CORE     9.2.0.1.0     Production
TNS for Solaris: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production
NLS settings are ---
1* select * from v$nls_parameters
SQL> /
PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET EE8ISO8859P2
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXF
F AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXF
F AM TZR
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
Anything more I need to setup. Btw I dun understand yet very clearly difference between NLS_CHARACTER_SET and NLS_NCHAR_CHARACTERSET

Similar Messages

  • DECIMAL = HEX CONVERSION PACKAGE 생성 SCRIPT

    제품 : SQL*PLUS
    작성날짜 : 2002-04-12
    DECIMAL <=> HEX CONVERSION PACKAGE 생성 SCRIPT
    ==============================================
    Purpose
    Oracle내에서는 여러가지 값을 HEX 값으로 보여주는 경우가 있다.
    이런 경우 DB내에서 decimal 값으로 변환하기 위한 방법을 알아보자.
    Explanation
    다음은 decimal <=> hexa 의 conversion을 위한 package 생성문으로서
    system user로 수행하여 사용한다.
    create or replace package support as
    function dectohex (a number) return varchar2;
    pragma restrict_references
    (dectohex, WNDS, WNPS, RNDS, RNPS);
    function hextodec (a varchar2) return number;
    pragma restrict_references
    (hextodec, WNDS, WNPS, RNDS, RNPS);
    end support;
    create or replace package body support as
    FUNCTION hextodec(a IN VARCHAR2) RETURN NUMBER IS
    x NUMBER := 0;
    y NUMBER;
    z VARCHAR2(1);
    BEGIN
    IF length(a) > 8 THEN
    RAISE invalid_number;
    END IF;
    FOR i IN 1..length(a) LOOP
    z := upper(substr(a,i,1));
    IF z = 'A' THEN
    y := 10;
    ELSIF z = 'B' THEN
    y := 11;
    ELSIF z = 'C' THEN
    y := 12;
    ELSIF z = 'D' THEN
    y := 13;
    ELSIF z = 'E' THEN
    y := 14;
    ELSIF z = 'F' THEN
    y := 15;
    ELSE
    y := to_number(z,9);
    END IF;
    x := x * 16;
    x := x + y;
    END LOOP;
    RETURN x;
    END hextodec;
    FUNCTION dectohex(a IN NUMBER) RETURN VARCHAR2 IS
    x VARCHAR2(8) := '';
    y VARCHAR2(1);
    z NUMBER;
    w NUMBER;
    BEGIN
    IF a > power(2,32) OR a < 0 THEN
    RAISE invalid_number;
    END IF;
    w := a;
    WHILE w > 0 LOOP
    z := w mod 16;
    IF z = 10 THEN
    y := 'A';
    ELSIF z = 11 THEN
    y := 'B';
    ELSIF z = 12 THEN
    y := 'C';
    ELSIF z = 13 THEN
    y := 'D';
    ELSIF z = 14 THEN
    y := 'E';
    ELSIF z = 15 THEN
    y := 'F';
    ELSE
    y := to_char(z);
    END IF;
    w := trunc(w / 16);
    x := concat(y,x);
    END LOOP;
    RETURN x;
    END dectohex;
    END support;
    drop public synonym support;
    create public synonym support for system.support;
    grant execute on support to public;

    FYI: The new xf86-video-intel (2.9) has just been released:
    http://article.gmane.org/gmane.comp.fre … xorg/40733
    According to the release announcement, the new driver fixes the backlight issue with KMS:
    * Add support for BACKLIGHT property when using kernel modesetting
      (KMS). This allows backlight adjustment with programs such as
      "xbacklight -set <percentage>" or "xrandr --set BACKLIGHT <value>".

  • Character to hex conversion

    Hi,
    How can i convert character into hex string , for example if i have the data as "testing data", how can i get the hex coded output? Ive tried out using first string to number vi and thennumber to hex conversion vi but i get the answer as 0, can u help me in this?
    In short my data is " testing1234okokok" , i want a hex coded output which would be something as  "AD87BA......."
    Please help
    From Subhash

    What coercion dots? There are no coercion dots even without the loop:
    Message Edited by smercurio_fc on 02-13-2008 03:12 PM
    Attachments:
    Example_VI.png ‏1 KB

  • Interger to hex conversion ???

    Hi
    Is there a easy way to make interger (unsigned 32 bit ) to HEX
    conversion ??

    Kristian,
    It depends on what you want to do with the hex conversion. To view a
    number in hex in a control, right click on the control, select Format &
    Precision. As long as the format is set to numeric, you can select
    between decimal, hex, octal and binary from the other drop-down list.
    If you want to change an unsigned 32-bit number to a hex value to be
    written to a file, you can use the String->Format Into String VI. Wire
    your U32 into input 1, and set the format string to %4x (which will show
    a 4 digit hex value). The output will be a string which contains the
    hex value.
    Hope that helped.
    Mark
    In article <[email protected]>,
    [email protected] wrote:
    >
    >
    > Hi
    >
    > Is there a easy way to make interger (unsigned 32 bit ) to H
    EX
    > conversion ??
    >
    Sent via Deja.com http://www.deja.com/
    Before you buy.

  • Problem with EPC URI to Hex conversion

    Hi Forum,
    I am getting strange EPC URI to hex conversion result in tx:/ain/http_test . Could you please confirm if this result is not expected.
    1.URI : urn:autoid:tag:sgtin-96:3.0066800.054321.70     
    hex is :  30740413C00000D431000000
    2.URI:  URN:AUTOID:TAG:SGTIN-96:3.0066800.054321.71
    hex is: 30740413C00000D431000000
    thus is both case HEX is same!!!
    i am using EPC_1.24  as active EPC version.
    could you please suggest some round about way.
    thanks in advance,
    regards,
    Ashit

    hi,
    i think problem is with EPC_1.24. i changed to
    EPC_1.27
    and it works fine.
    regards,
    Ashit

  • Unicode hex conversion

    Hello, can anyone please tell me how to achieve the same effect on this website, http://mylanguages.org/converter.php , in pl sql or oracle sql? They have taken an arabic string and returned a (to my knowledge) hex value.
    Many Thanks

    Handle:  igwe   
    Status Level:  Newbie (15) 
    Registered:  Mar 11, 2008 
    Total Posts:  384 
    Total Questions:  148 (83 unresolved)  Do you ask so many difficult questions or don't you mark questions as answerd when they are?
    with inp as
    ( select 'سليم' str from dual
    union all select 'anton' from dual
    select ( select listagg( '&#' || to_number( utl_raw.substr( utl_i18n.string_to_raw( str, 'AL16UTF16' ), level * 2 - 1, 2 ), 'XXXX' ) || ';' ) within group ( order by level )
             from dual
             connect by level <= length( str )
    from inpEdited by: ascheffer on Mar 5, 2013 11:33 PM

  • Convert Unicode to Hex (Big5 hex)

    i have a content in MySql as Blob type. The content is a string of unicode. The below string is the content.
    82f1570b5a929ad4900f9732002c67008fd16df153d75b9853f87e8f8eab76849ea553ef5091905c62537b9754119ed15e6b592780337abf501f9322002c4ee589e36c7a4ed69ad890544e0051044e8c5343842c7f8e91d1768450b552d9002c800c9ea553ef5df2548c5c0d65b9800159276210597d53cb002e
    This is representing a sentence of chinese character. Well, for instance:
    82f1 - ying
    570b - guo
    (ying guo = England country)
    My question is, how can i convert 82f1 into Big5 format? Eg: "82f1" will becomes "AD5E".
    Anyone has idea to convert it? Thanks

    this might be helpful as well
    String s = "abcdef";
    byte[] bytes;
    try {
    bytes = s.getBytes("UTF-16BE");
    catch (java.io.UnsupportedEncodingException ex) {
    for (int i = 0; i < bytes.length; ++i) {
    System.out.print
    (Integer.toHexString(bytes|0x100).substring(1,3) +
    First of all, thank you for replying. This above code showed conversion from char to hex. But my problem is to convert from UTF-16 to Big5. Every 4 digits (82f1) is representing a char in chinese encoding. Therefore, i am looking a way to convert every 4 digits back to Big5 encoding. Do you have any idea of that? :)

  • Hex conversion problem... Please help

    Hi all,
    I need to convert a hex character representing a UTF-16 character to a hex string representing a UTF-8 character
    i.e
    String input ="0x0630"; //ARABIC LETTER THAL (UTF-16)
    I want the output to be a hex representation of the same charcter in UTF-8.
    Does anyone know the java code to do this?

    As BIJ001 already implied: There are no "UTF-8 characters" and "UTF-16 characters". There are Unicode characters and their respective UTF-8 and UTF-16 encodings.
    For example:
    "&#1584;" is the arabic Letter Thal. Its name in the Unicode standard is ARABIC LETTER THAL. Its is the Unicode codepoint (decimal) 1584. This is often written as U+0630 (note that this number is hexadecimal).
    The UTF-16 encoding of this letter is the 16bit word 0x0630 (the UTF-16 encoding of most common characters is identical to its codepoint, but that's not always the case!).
    The UTF-8 encoding of this letter are the two 8bit words 0xD8 0xB0.
    If you have the String "0x0630", then you can split the hexadecimal number from the String, parse it, interpret it as a char, and create a String from it. Then call getBytes("UTF-8") on it and you'll have a byte array containing the UTF-8 encoding of that character.
    [_The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)_|http://www.joelonsoftware.com/articles/Unicode.html] is a nice explanation as well.

  • From Unicode to IS08859_1 conversion

    Hi everybody!
    I'm trying simply to correctly display some special characters like �,�,�,�,�,�.
    I can decode correctly any RFC2047 compliant string, but the output string is in Unicode(UTF8) format, since this is the Java's native charset.
    Then I tried to convert the string to the ISO-8859-1 another charset in two ways:
    1) string = new String(string.getBytes(),"ISO8859_1");
    2) import sun.io.CharToByteConverter;
    CharToByteConverter fromUnicode = CharToByteConverter.getConverter("ISO8859_1");
    string = new String(fromUnicode.convertAll(string.toCharArray()));
    Both of these gave me the same result.
    Are they equivalent? (yes, I suppose).
    Anyway, trying to convert to some charsets (like SJIS, Cp307) it works fine, but trying to convert to other charsets (ISO8859_1, Cp1202) it seems not to perform any conversion:
    the result is the same I obtain deleting the code descripted above.
    Can anyone give me help?
    Thank you all.
    Gi_gio.

    1) string = new String(string.getBytes(),"ISO8859_1");This is likely to do nothing because here's what happens: It converts "string" to an array of bytes using the default encoding for your platform, which is most likely ISO8859-1. Then it converts that array of bytes back to a String, using ISO8859-1. So... no change.
    Every time you think "I need a string in xxx format", slap yourself on the hand. A Java String is not in any format but Unicode. There is no such thing as a UTF-8 String or an ISO8859-1 String. If you need data in a particular encoding, you need an array of bytes in that encoding. In other words if you need your String in ISO8859-1 encoding, you do this:
    bytes b[] = string.getBytes("ISO8859_1");

  • Unicode huge file conversion problem

    I use the command in Unix "<b>sapiconv -f 4110 -t 8600 -o <source file name> <destination file name></b>" calling by ABAP command  "CALL 'SYSTEM' ID 'COMMAND'  "   to convert non-unicode source file to unicode destination file in code page 8600 (Thai language). For the small size source file, It has no problem, but for the huge size source file (27MB - the file was extracted and created by OPEN DATASET from asset master data about 95000 records), it has problem.  There are only about 1300 Records (about 200k) in destination file and <b>the remain records are missing!?!?</b> And every time I run the program, It still has certain result.
    What can I do for this case? or the command 'sapiconv' has the size limitation for unicode file conversion? or which additional parameter should I use?
    Thank you in advance.
    David

    Hello,
    You  can use this function module
    CALL FUNCTION 'ARCHIVOBJECT_GET_CLIENT'
              EXPORTING
                ARCHIV_DOC_ID               =   V_ARCDOCID
                ARCHIV_ID                        =   V_ARCHIVID
                PATH                                 =   V_PATH
    *            DOC_TYPE                       =   'TXT '
    *         IMPORTING
    *            REPATH                           =
    *            COUNT                             =
    *            FILE_NAMES                    =
             EXCEPTIONS
               ERROR_ARCHIV                = 1
               ERROR_COMMUNICATIONTABLE       = 2
               ERROR_KERNEL                = 3
               ERROR_HTTP                     = 4
               OTHERS                             = 5.       
    I think it will help to you,
    Anil.

  • Unicode to String Conversion

    Dear all,
    I'm trying to get the String from unicode, previously i'm converting the String to Unicode like below,
    String s = "\\u"+Integer.toHexString(s.charAt(0));
    Which is giving me the same what i appended above even after Conversion using UTF-8.
    If i do String s ="\u30f3"
    It is giving me correct character. But my problem is i'm getting the latter part i.e hexString latter in the run time...through Integer.toHexString..
    i can't add this as a character.. so it is taking as a two different strings..
    How to handle this situation..
    Hope i can find the answer,
    Thanks in advance,
    Srinivas N

    Below is my IOUtils class. In particular, see the loadTextFile method for an example of how to read a UTF file, and the isUTF method to detect if a file is Unicode
    You will not be able to compile this class unless you have my InfoFetcher class. You should be able to find a reference to this class by searching google for "InfoFetcher tjacobs01"
    You are welcome to use and modify this class, but please don't change the package or take credit for it as your own work
    package tjacobs.io;
    import java.awt.Component;
    import java.io.*;
    import java.net.URL;
    import java.net.URLConnection;
    import java.text.MessageFormat;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import javax.swing.JOptionPane;
    import javax.swing.JTable;
    import javax.swing.table.TableModel;
    import tjacobs.io.InfoFetcher.FetcherListener;
    * IOUtils class
    * This is an important class that I use a lot.<p>
    * has a lot of static utilities. Most should be fairly self-explanatory
    public class IOUtils {
         public static final int DEFAULT_BUFFER_SIZE = (int) Math.pow(2, 20); //1 MByte
         public static final int DEFAULT_WAIT_TIME = 30000;
         public static final boolean ALWAYS_BACKUP = false;
         public static String loadTextFile(File f) throws IOException {
              return loadTextFile(f, isUTF16(f));
         public static String loadTextFile(File f, boolean UTF16) throws IOException {
              BufferedReader br = !UTF16 ?
                        new BufferedReader(new FileReader(f)) :
                        new BufferedReader(
                             new InputStreamReader(new FileInputStream(f),
                                                   "UTF-16"));
              int length = (int) f.length();
              char data[] = new char[!UTF16?(int)length : ((int)length) / 2 - 1];
              int got = 0;
              do {
                   got += br.read(data, got, data.length - got);
              while (got < data.length);
              return new String(data);
         public static InfoFetcher loadData(InputStream in) {
              byte buf[] = new byte[DEFAULT_BUFFER_SIZE]; // 1 MByte
              return loadData(in, buf);
         public static InfoFetcher loadData(InputStream in, byte buf[]) {
              return loadData(in, buf, TimeOut.DEFAULT_WAIT_TIME);
         public static InfoFetcher loadData(InputStream in, byte buf[], int waitTime) {
              return new InfoFetcher(in, buf, waitTime);
         public static InfoFetcher loadData(InputStream in, int initBufLength, int waitTime) {
              return loadData(in, new byte[initBufLength], waitTime);
         public static InfoFetcher loadData(File f) throws FileNotFoundException{
              //if (!f.exists()) throw new FileNotFoundException(f.getAbsolutePath());
              //create the inputstream first so that we can generate the FileNotFoundException right away
              InputStream in = new BufferedInputStream(new FileInputStream(f));
              long len = f.length();
              if (len > Integer.MAX_VALUE) {
                   throw new RuntimeException("File size exceeds maximum size for a byte buffer");
              return loadData(in, (int) len, TimeOut.NO_TIMEOUT);
         public static InfoFetcher loadData(URL url) throws IOException{
              return loadData(url.openConnection());
         public static InfoFetcher loadData(URLConnection conn) throws IOException {
              int size = conn.getContentLength();
              if (size < 0) return loadData(conn.getInputStream(), 2000, DEFAULT_WAIT_TIME);
              return loadData(conn.getInputStream(), size, DEFAULT_WAIT_TIME);
          * Note: There is no guarentee that this method will
          * ever return. For instance, if you call loadAll on
          * an open socket connection it won't return until the
          * socket has closed
         public static String loadAllString(InputStream in) {
              InfoFetcher fetcher = loadData(in);
              fetcher.run();
              return new String(fetcher.buf, 0, fetcher.got);
          * Note: There is no guarentee that this method will
          * ever return. For instance, if you call loadAll on
          * an open socket connection it won't return until the
          * socket has closed
         public static byte[] loadAll(InputStream in) {
              InfoFetcher fetcher = loadData(in);
              return fetcher.readCompletely();
         public static void copyBufs(byte src[], byte target[]) {
              int length = Math.min(src.length, target.length);
              for (int i = 0; i < length; i++) {
                   target[i] = src;
         * Not threaded by default. If you need this to run
         * in a separate, create a new thread or runnable class
         * @param in
         * @param out
         public static void pipe (InputStream in, OutputStream out) {
              pipe (in, out, TimeOut.NO_TIMEOUT);
         * Not threaded by default. If you need this to run
         * in a separate, create a new thread or runnable class
         * @param in
         * @param out
         public static void pipe (InputStream in, final OutputStream out, int timeout) {
              pipe (in, out, timeout, false);
         private static class PipeFetcher implements FetcherListener {
              OutputStream out;
              InputStream in;
              public IOException ex;
              boolean closeWhenDone;
              public PipeFetcher (InputStream in, OutputStream out, boolean closeWhenDone) {
                   this.out = out;
                   this.closeWhenDone = closeWhenDone;
              public void fetchedMore(byte[] buf, int start, int end) {
                   try {
                        out.write(buf, start, end - start);
                   catch (IOException iox) {
                        ex = iox;
                        try {
                             in.close();
                             out.close();
                        catch (IOException iox2) {
                             iox2.printStackTrace();
              public void fetchedAll(byte[] buf) {
                   if (closeWhenDone) {
                        try {
                             out.close();
                        catch (IOException iox) {
                             iox.printStackTrace();
         * Not threaded by default. If you need this to run
         * in a separate, create a new thread or runnable class
         * @param in
         * @param out
         public static IOException pipe (final InputStream in, final OutputStream out, int timeout, final boolean closeWhenDone) {
              InfoFetcher info = new InfoFetcher (in, new byte[DEFAULT_BUFFER_SIZE], timeout);
              PipeFetcher pf = new PipeFetcher(in, out, closeWhenDone);
              info.addFetcherListener(pf);
              info.run();
              return pf.ex;
              info.addInputStreamListener(new InputStreamListener() {
                   public void gotMore(InputStreamEvent ev) {
                        try {
                             out.write(ev.getBytes(), ev.getStart(), ev.getBytesRetrieved() - ev.getStart());
                        catch (IOException iox) {
                             System.err.println ("Pipe closing");
                   public void gotAll(InputStreamEvent ev) {}
              Thread t= new Thread (info);
              t.start();
         public static byte[] expandBuf(byte array[]) {
              return expandBuf(array, array.length * 2);
         public static byte[] expandBuf(byte array[], int newlength) {
              byte newbuf[] = new byte[newlength];
              copyBufs(array, newbuf);
              return newbuf;
         public static byte[] trimBuf(byte[] array, int size) {
              byte[] newbuf = new byte[size];
              for (int i = 0; i < size; i++) {
                   newbuf[i] = array[i];
              return newbuf;
         * @see getFileOutputStream(File, boolean)
         public static OutputStream getFileOutputStream(File file) throws IOException {
              return getFileOutputStream(file, true);
         * Convienience method for opening a FileOutputStream w/wo a buffer
         * makes sure that the file directory exists so this should always succeed.
         public static OutputStream getFileOutputStream(File file, boolean buffered) throws IOException {
              if (!file.exists() && !file.isDirectory()) {
                   confirmDirectoryExists(file.getParentFile());
              if (file.exists()) {
                   if (ALWAYS_BACKUP) {
                        file.renameTo(new File(file.getAbsolutePath() + "~"));
                   } else {
                        file.delete();
              file.createNewFile();
              OutputStream out = new FileOutputStream(file);
              if (buffered) {
                   out = new BufferedOutputStream(out);
              return out;
         * Confirms that a directory exists and makes it if it doesn't
         public static void confirmDirectoryExists(File dir) {
              if (!dir.exists()) {
                   confirmDirectoryExists(dir.getParentFile());
                   dir.mkdir();
              if (!dir.isDirectory()) {
                   confirmDirectoryExists(dir.getParentFile());
         public static OutputStream getFileOutputStream(String name) throws IOException {
              return getFileOutputStream(name, true);
         public static PrintStream getFilePrintStream(String file) throws IOException {
              return new PrintStream(getFileOutputStream(file));
         public static PrintStream getFilePrintStream(File file) throws IOException {
              return new PrintStream(getFileOutputStream(file));
         public static OutputStream getFileOutputStream(String name, boolean buffered) throws IOException {
              return getFileOutputStream(new File(name), buffered);
         * @param f if f is a directory it returns the absolue path to f otherwise it returns the absolute path to the directory f is in
         public static String getDirectory(File f) {
              if (f.isDirectory()) {
                   return f.getAbsolutePath();
              else {
                   return f.getParentFile().getAbsolutePath();
         * Get the file without the extension.
         * @see getFileNoExtension(String);
         public static String getFilenameNoExtension(File f) {
              return getFilenameNoExtension(f.getName());
         * Gets the file name without the extension
         * returns the whole file name if no '.' is found<br>
         * otherwise returns whatever's before the last .
         public static String getFilenameNoExtension(String s) {
              int idx = s.indexOf('.');
              if (idx == -1) {
                   return s;
              else {
                   return s.substring(0, idx);
         * gets the file extension
         * if a '.' character is found it returns what's after the last .
         * if not, it returns the empty string
         public static String getFileExtension(String s) {
              int idx = s.lastIndexOf('.');
              if (idx == -1) {
                   return "";
              else {
                   return s.substring(idx + 1);
         * @see getFileExtension(String)
         public static String getFileExtension(File f) {
              return getFileExtension(f.getName());
         * Delete everything in a directory. Recursively deletes all sub-directories
         public static void deleteDirectory (File f, Component parent) {
              if (!f.isDirectory()) {
                   throw new RuntimeException("File " + f.getAbsolutePath() + " is not a directory!");
              int val = JOptionPane.showConfirmDialog(parent, "Confirm Delete " + f.getAbsolutePath(), "Confirm Delete " + f.getAbsolutePath(), JOptionPane.OK_CANCEL_OPTION);
              if (val == JOptionPane.OK_OPTION) {
                   deleteAllFiles(f);
         private static void deleteAllFiles (File f) {
              //recursively delete all its contents
              if (!f.isDirectory()) {
                   //throw new RuntimeException("File " + f.getAbsolutePath() + " is not a directory!");
                   f.delete();
              else {
                   File[] files = f.listFiles();
                   for (int i = 0; i < files.length; i++) {
                        if (files[i].equals(f) || files[i].equals(f.getParent())) {
                             continue;
                        deleteAllFiles(files[i]);
                   f.delete();
         * static utility method for copying a file to another location
         public static void copyFile (File src, File newParent) throws FileNotFoundException {
              if (!src.exists()) {
                   return;
              if (!newParent.exists()) {
                   newParent.mkdirs();
                   //throw new RuntimeException("Parent folder must exist");
              if (newParent.isDirectory()) {
                   File newFile = new File(newParent, src.getName());
                   if (src.isDirectory()) {
                        newFile.mkdir();
                        File children[] = src.listFiles();
                        for (int i = 0; i < children.length; i++) {
                             copyFile(children[i], newFile);
                   else {
                        //loadFile
                        InfoFetcher info = loadData(new FileInputStream(src));
                        final BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(newFile));
                        info.addInputStreamListener(new InputStreamListener() {
                             int lastbytes = 0;
                             public void gotMore(InputStreamEvent ev1) {
                                  try {
                                       out.write(ev1.getBytes(), lastbytes, ev1.getBytesRetrieved() - lastbytes);
                                       lastbytes = ev1.getBytesRetrieved();
                                  catch (IOException iox) {
                                       iox.printStackTrace();
                             public void gotAll(InputStreamEvent ev2) {
         * @deprecated use the Find class
         public static File find(Pattern p, File start) {
              return recursiveFind(start, null, p, true);
         * @deprecated use the Find class
         public static File find(Pattern p) {
              return find(p, new File("."));
         * @deprecated use the Find class
         private static File recursiveFind(File current, File cameFrom, Pattern p, boolean startDescending) {
              Matcher m = p.matcher(current.getName());
              if (m.matches()) {
                   return current;
              File[] files = current.listFiles();
              if (startDescending) {
                   File value = descend(current, cameFrom, p, startDescending);
                   if (value != null) return value;
                   return ascend(current, cameFrom, p, startDescending);
              else {
                   File value = ascend(current, cameFrom, p, startDescending);
                   if (value != null) return value;
                   return descend(current, cameFrom, p, startDescending);               
         * @deprecated use the Find class
         private static File ascend(File current, File cameFrom, Pattern p, boolean startDescending) {
              File par = current.getParentFile();
              if (par == null) {
                   return null;
              par = par.getAbsoluteFile();
              if (par.equals(cameFrom)) {
                   return null;
              return recursiveFind(par, current, p, false);
         * @deprecated use the Find class
         private static File descend(File current, File cameFrom, Pattern p, boolean startDescending) {
              File files[] = current.listFiles();
              if (files == null) {
                   return null;
              for (int i = 0; i < files.length; i++) {
                   File child = files[i];
                   if (child.equals(cameFrom)) {
                        continue;
                   File f = recursiveFind(child, current, p, true);
                   if (f != null) {
                        return f;
              return null;
         * Utility for saving a string to a file. Rather than have to set
         * up all the writers etc and trap exceptions, just returns a boolean
         * if it worked
         * <p>
         * @see saveData(File, byte[])
         public static boolean saveData(File f, String s) {
              return saveData(f, s.getBytes());
         * Utility for saving a string to a file. Rather than have to set
         * up all the writers etc and trap exceptions, just returns a boolean
         * if it worked
         public static boolean saveData(File f, byte[] data) {
              try {
                   OutputStream out = new BufferedOutputStream(new FileOutputStream(f));
                   out.write(data);
                   out.close();
              catch(IOException iox) {
                   iox.printStackTrace();
                   return false;
              return true;
         * Way to save a stream to a file. Not multithreaded.
         * Will block until the save is done
         * @param f
         * @param in
         * @return
         public static boolean saveData(File f, InputStream in) throws FileNotFoundException {
              return pipe(in, new FileOutputStream(f), TimeOut.NO_TIMEOUT, true) == null;
              //InfoFetcher fetcher = loadData(in);
    //          try {
    //               FileOutputStream out = new FileOutputStream(f);
    //               fetcher.addFetcherListener(new FetcherListener() {
    //                    public void fetchedMore(byte[] buf, int start, int end) {
    //                    public void fetchedAll(byte[] buf) {
    //          } catch (IOException iox) {
    //               iox.printStackTrace();
    //               return false;
    //          return true;
         * @deprecated use Find
         public static List<File> findAllFiles(Pattern p) {
              ArrayList<File> l = new ArrayList<File>();
              //File start = File.listRoots()[0];
              File start = new File("C:\\");
              return recursiveFindAll(start, null, p, true, l, 0);
              //l;
         * @deprecated use Find
         private static List recursiveFindAll(File current, File cameFrom, Pattern p, boolean startDescending, ArrayList<File> list, int level) {
              //System.out.println("" + level + " Scanning: " + current + "par: " + cameFrom);
              System.out.println("Scanning: " + current);
              Matcher m = p.matcher(current.getName());
              if (current.getName().equals("C:\\")) {
                   System.out.println("root");
                   try {
                        System.in.read();
                   catch (IOException iox) {}
              if (m.matches()) {
                   //return current;
                   list.add(current);
                   System.out.println("Adding " + current);
              File[] files = current.listFiles();
              if (startDescending) {
                   //File value = descend(current, cameFrom, p, startDescending);
                   descendAll(current, cameFrom, p, startDescending, list, level + 1);
                   //ascendAll(current, cameFrom, p, startDescending, list, level + 1);
                   //if (value != null) return value;
                   //return ascend(current, cameFrom, p, startDescending);
              else {
                   //ascendAll(current, cameFrom, p, startDescending, list, level + 1);
                   descendAll(current, cameFrom, p, startDescending, list, level + 1);
                   //File value = ascend(current, cameFrom, p, startDescending);
                   //if (value != null) return value;
                   //return descend(current, cameFrom, p, startDescending);               
              return list;
         * @deprecated use Find
         private static List ascendAll(File current, File cameFrom, Pattern p, boolean startDescending, ArrayList<File> list, int level) {
              File par = current.getParentFile();
              if (par == null) {
                   return list;
              par = par.getAbsoluteFile();
              if (par.equals(cameFrom)) {
                   return list;
              recursiveFindAll(par, current, p, false, list, level);
              return list;
         * @deprecated use Find
         private static File descendAll(File current, File cameFrom, Pattern p, boolean startDescending, ArrayList<File> list, int level) {
              File files[] = current.listFiles();
              if (files == null) {
                   return null;
              for (int i = 0; i < files.length; i++) {
                   File child = files[i];
                   if (child.equals(cameFrom)) {
                        continue;
                   recursiveFindAll(child, current, p, true, list, level);
              return null;
         public File getUniqueName(File f) {
              return getUniqueName (f, new MessageFormat("~{0,number,integer}"));
         public String getNameWOExtension(File f, boolean useAbsolute) {
              int idx = f.getName().indexOf(".");
              return (idx == -1) ? (useAbsolute ? f.getAbsolutePath() : f.getName()) : (useAbsolute ? f.getAbsolutePath() : f.getName()).substring(0, (useAbsolute ? f.getAbsolutePath().lastIndexOf(".") : f.getName().lastIndexOf(".")));
         public String getFileType (File f, boolean includeDot) {
              int idx = f.getName().lastIndexOf(".");
              return idx == -1 ? "" : f.getName().substring(idx + (includeDot ? 0 : 1));
         public File getUniqueName(File f, MessageFormat format) {
              String base = getNameWOExtension(f, true);
              String extension = getFileType(f, true);
              int count = 0;
              while (f.exists()) {
                   count++;
                   f = new File (base + format.format(new Object[] {Integer.valueOf(count)}) + extension);
              return f;
         public static boolean isUTF16 (File f) throws IOException {
              FileInputStream in = null;
              try {
                   if (!f.exists() || f.length() < 2) return false;
                   in = new FileInputStream(f);
                   byte b = (byte)in.read();
                   if (!(b == -1)) return false;
                   b = (byte) in.read();
                   return b == -2;
              finally {
                   if (in != null) in.close();
         public static boolean isUTF16(PushbackInputStream in) {
              boolean got1 = false, got2 = false;
              byte b = 0, b2 = 0;
              try {
                   b = (byte)in.read();
                   got1 = true;
                   if (!(b == -1 || b== -2)) {
                        return false;
                   b2 = (byte) in.read();
                   got2 = true;
                   return b == -1 ? b2 == -2 : b2 == -1;
              catch (IOException iox) {
                   iox.printStackTrace();
              finally {
                   try {
                        if (got1) {
                             in.unread(b);
                        if (got2) {
                             in.unread(b2);
                   } catch (IOException iox) {
                        iox.printStackTrace();
              return false;
         public void saveJTableToCSV(JTable table, File f) throws IOException {
              if (table == null || f == null) return;
              TableModel model = table.getModel();
              if (model == null) return;
              int rows = model.getRowCount();
              int columns = model.getColumnCount();
              PrintWriter pw = new PrintWriter(new FileWriter(f));
              for (int i = 0; i < rows; i++) {
                   for (int j = 0; j < columns; j++) {
                        Object o = model.getValueAt(i, j);
                        pw.print(o.toString());
                        if (j != columns - 1) {
                             pw.print(",");
                   pw.println();
         public static String getPathRelativeTo(File path, File relativeTo) {
              return getPathRelativeTo(path.getAbsolutePath(), relativeTo.getAbsolutePath());
         public static String getPathRelativeTo(String path, String relativeTo) {
              if (!path.startsWith(relativeTo)) return null;
              path = path.substring(relativeTo.length());
              if (path.startsWith(File.separator)) path = path.substring(File.separator.length());
              return path;

  • Numeric to hex conversion

    Hi
    i am new to labview. i have implemented a controller circuit and serially communicating with using lab view in that i am using a numeric value and converting it to hex using numeric to hex string and receiving that on port 1 of controller but that is displaying ASCII values of my number though i have converted it in hex in block diagram of labview. 
    Attachments:
    serial comm.vi ‏16 KB

    Hi
    I have problem in labview to my hardware communication. when i am using (testing) code for my controller and using CS100FULL.vi then i get whatever data i send on assigned ports. But i want total 12 bit data to deal with and thats to in hex form insted of ASCII so i do the necessary changes in controller code(testing1) and making change in vi also keeping width of decimal to hex string conversion block 3. but i wont get any data at port.
    Please please suggest me whwrw i am making mistakes because in keil this code runs properly and i get at desired data at ports in simulator but when i am loding it in controller it won't work with labview but when i am using hyper terminal it communicate properly and i get data at port 0&1 that
    means i am doing mistake in vi so please suggest me solution and mistakes i am making in my vi.
    Thank you
    Attachments:
    testing.txt ‏2 KB
    testing1.txt ‏1 KB
    CS100Full.vi ‏37 KB

  • Float to hex conversion

    Application A has a data type NUMBER and B has a data type BLOB. The data types cannot be changed since we don't have the source codes for both applications.
    The data stored in application A is a float of negative value (--1.7029176). I need to convert it to hex (BFD9F934) and store it in application B to be able to use it.
    Is there a way to code this in PL/SQL?

    I guess you are looking for these conversion functions
    SQL> select rawtohex(-1.7029176) from dual;
    RAWTOHEX(-1.70
    3E641F48542966
    --" or "
    SQL> select dump (-1.7029176,16 ) from dual;
    DUMP(-1.7029176,16)
    Typ=2 Len=7: 3e,64,1f,48,54,29,66

  • 46C EBCDIC to UNICODE upgrade and conversion

    Can the UNICODE conversion processed be used directly on a 46C EBCDIC source system? Or is a conversion to 46C ASCII required before a UNICODE conversion?

    Hello Will,
    as Sally already explained, this is unfortunately not possible ;-((
    SAP does not support Unicode with 4.6C ;-(
    Therefore, only EBCDIC and ASCII are the options.
    As of 4.7 Unicode & ASCII are available.
    => the project could look as follows:
    - On 4.6 you need to go from EBCDIC to ASCII - 12 - 24h conversion time
    - Upgrade to ERP 6.0 EHP4 ASCII - total Runtime about 40-65h - downtime of that: 10-24h
    - Unicode Conversion Latin1 - 6-14h conversion time
    => You see, that the total runtime in one step is pretty long - e.g. for X-mas ...
    Otherwise, it is typical, that the ASCII CPC is done in one step and later on Upgrade & Unicode in one further step.
    For more details, we should talk together, but at least your project is pretty big ...
    Regards
    Volker Gueldenpfennig, consolut international ag
    http://www.consolut.net - http://www.4soi.de - http://www.easymarketplace.de

  • Unicode and ascii conversion help needed

    I am trying to read passwords from a foxpro .dbf. The encrpytion of the password is crude, it takes the ascii value of each char entered and adds an integer value to it, then stores the complete password to the table. So to decode, just subtract same integer value from each chars retieved from .dbf. pretty simple.
    The problem is that java chars and strings are unicode, so when my java applet retrieves these ascii values from the .dbf they are treated as unicode chars, if the ascii value is over 127 I have problems.
    The question. how can i retrieve these ascii values as ascii values in java?
    Should I use an InputStream like:
    InputStream is=rs.getAsciiStream("password");
    Is there a way to convert from unicode to extended ascii?
    Some examples would be helpful, Thanks in advance.

    version 1
    import java.nio.charset.Charset;
    import java.nio.ByteBuffer;
    import java.nio.CharBuffer;
    class Test {
        static char[] asciiToChar(byte[] b) {
            Charset cs = Charset.forName("ASCII");
            ByteBuffer bbuf = ByteBuffer.wrap(b);
            CharBuffer cbuf = cs.decode(bbuf);
            return cbuf.array();
        static byte[] charToAscii(char[] c) {
            Charset cs = Charset.forName("ASCII");
            CharBuffer cbuf = CharBuffer.wrap(c);
            ByteBuffer bbuf = cs.encode(cbuf);
            return bbuf.array();
    }version 2
    import java.io.*;
    import java.nio.charset.Charset;
    class Test {
        static char[] asciiToChar(byte[] b) throws IOException {
            Charset cs = Charset.forName("ASCII");
            ByteArrayInputStream bis = new ByteArrayInputStream(b);
            InputStreamReader isr = new InputStreamReader(bis, cs);
            char[] c = new char[b.length];
            isr.read(c, 0, c.length);
            return c;
        static byte[] charToAscii(char[] c) throws IOException {
            Charset cs = Charset.forName("ASCII");
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(bos, cs);
            osw.write(c, 0, c.length);
            osw.flush();
            byte[] b = bos.toByteArray();
            return b;
    }

Maybe you are looking for