File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Beginning Java and the fly likes How to make a £ symbol printed from a file? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "How to make a £ symbol printed from a file?" Watch "How to make a £ symbol printed from a file?" New topic
Author

How to make a £ symbol printed from a file?

Bhaskar Mukhejee
Greenhorn

Joined: Sep 16, 2008
Posts: 14
Hi,

I am working on Solaris and facing a problem. I have a .DAT file which simply contains some data in particular format which includes £ symbol. The fomat looks like

001|£30VB | | |T+T250|£30 Value Bundle |1|1|1 |0 |0|0 | |0|1010906 |93731 |TREVORJ |CRBCE1P |1090713 |134739 |JAMESMAT |CRBCE1P |9 |1|PRE-REPORT | | |

The requirement is a java program will be reading the file and printing the same file as it is. But when my program is reading the file and printing everthing is perfectly printed except "£" symbol (read as pound). It is printing "?" instead.

Observations :
  • 1. When I am doing "cat Myfile.DAT" every thing getting displayed perfectly including £ symbol.
    2. When I am opening the same file in vi editor it is displaying ASCII value for £ symbol. (/243).
    3. I tried to change the encoding from java level by setting the property (in the program Myprog.java) like this




  • It is reading the .DAT file properly and printing properly. But the bottleneck is , we can not execute the java program from command line as a matter of fact, I tried to set the property(file.encoding) in code level by writing this:


    but this does not work. From java level I am checking, it is showing that property has been set but actually the program is not working if I do it from code level.

    How to proceed? Any ideas? Hopefully this has to be handled in java level not in Unix level (not sure).
    Just to read a dat file and print the file output using java.
    Mods, forgive me if I have posted in wrong place.
    Thanks in advance.

    Regards,
    Bhaskar
    Campbell Ritchie
    Sheriff

    Joined: Oct 13, 2005
    Posts: 38851
        
      23
    Java should have no difficulty printing "£". Try diverting your output; instead of using System.out, try JOptionPane.showMessageDialog(). You might need null for your first argument.
    Paul Clapham
    Bartender

    Joined: Oct 14, 2005
    Posts: 18570
        
        8

    When you read from the file, use an InputStreamReader which specifies the encoding explicitly. (Your post implies that you are relying on the system's default encoding.) Something like this:

    Rob Spoor
    Sheriff

    Joined: Oct 27, 2005
    Posts: 19693
        
      20

    The terminal (CMD.EXE, bash, etc) usually cannot handle anything outside the ASCII charset. Using JOptionPane as Campbell suggested can get around this.


    SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
    How To Ask Questions How To Answer Questions
    Campbell Ritchie
    Sheriff

    Joined: Oct 13, 2005
    Posts: 38851
        
      23
    I have no difficulty persuading bash to print £
    campbell@queeg:~$ ££
    bash: ££: command not found
    campbell@queeg:~$
    . . . even though it can't find anything to do with it. Now CMD.exe, that's something different. It prints ú instead!
    Bhaskar Mukhejee
    Greenhorn

    Joined: Sep 16, 2008
    Posts: 14
    Hi,

    well i have tried

    in order to explicitly change the encoding, but this is also not working on solaris and printing same "?" instead of

    Can you suggest me how to encode programmatically in java instead of specifying option -Dfile.encoding=ISO-8859-1 from unix.
    Bhaskar Mukhejee
    Greenhorn

    Joined: Sep 16, 2008
    Posts: 14
    Hi,

    Is Pane a good idea to implement in this case? I took strategy where each line of the file read sequentially and print it using System.out.println() there by applying the encoding explicitly as suggested,



    Set the encoding with a particular value. It worked.

    Thanks to all of you spending time and reading this post.

    Regards,
    Bhaskar
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: How to make a £ symbol printed from a file?