Converting  cp850 to iso-8859-1

hi there,
I'm having a problem converting between charsets.
I've written the following function:
code:----
private String convertCharset(String data) {
try {
byte[] chars = data.getBytes();
String converted = new String( chars, "Cp850" );
catch ( UnsupportedEncodingException err) {
System.err.println(err);
String converted="";
return converted;
it seemed to work fine...*g*until it met german characters.
By now the only one (the only one I noticed) that doesn't get converted correctly is the letter '�', which becomes an '?'.
The strange thing is that an '?' stays an '?' so I can't just replace those two...kind of weird...
does anybody know a workaround for this ?
thanks

I'm getting data through an JDBC-ODBC bridge from an
foxpro 2.6 database, which returns the data cp850
encoded.
the data is fetched with the ResultSet.getString()
method and written into a 2d String array, so the data
should be cp850 encoded at that point (no ?).No, you still have it backwards. The data in the database should be bytes encoded in CP850, and the JDBC driver should -- if it is working correctly and the database is working correctly -- should convert those bytes to a String, using the CP850 charset.
(Every time you think "... and this String is encoded in..." you are off track.)
Then im calling the script I've posted here to convert
it to unicode (?).
Then I'm escaping the String for inserting it into an
INSERT Query, building the query and executing it.
So calling the ResultSet.getBytes() instead of the
ResultSet.getString() method and then calling your
function will fix this problems ?I suppose you ask this because you are, in fact, not getting the correct data from the database and the driver. This would not surprise me. I would guess that something like this:byte[] bytes = rs.getBytes(n);
String data = new String(bytes, "CP850");might work. That tells the driver to return the bytes from the database as they are, and then you convert them from a CP850 array of bytes to a string. Try that first to see if it works. Then if it does, you can move on to the INSERT problem.
That problem is: when you do INSERT of a String, the driver and database are likely not going to use CP850 in this case either. That is good and bad news: the good news is that data that you write from Java using INSERT can likely be read back using ResultSet.getString() with no problem. But the bad news is that the data already in the database can't, so you don't want that to happen. You can experiment with ü to see if the problem exists; if it does you need to do something like this:PreparedStatement ps = conn.prepareStatement("INSERT table fields(name) values(?)");
byte[] bytes = yourString.getBytes("CP850");
ByteArrayInputStream is = new ByteArrayInputStream(bytes);
ps.setBinaryStream(1, is, bytes.length);
ps.executeUpdate();
Sorry I'm asking, I'm a desperate C programmer working
with Java for 4 days (3 hours writing the
Synchronization program, the rest trying to fix this
problem)Yes, this is an annoying complication for non-Java programmers. You're doing pretty well for a beginner.

Similar Messages

  • Converting String to ISO-8859-1 html charset

    i want to convert string to ISO-8859-1 html charset or vice versa
    For example i need to replace "ö" as  "ö"
    How can i do that?
    http://www.unicodetools.com/unicode/utf8-to-latin-converter.php

    i want to convert string to ISO-8859-1 html charset or vice versa
    For example i need to replace "ö" as  "ö"
    How can i do that?
    http://www.unicodetools.com/unicode/utf8-to-latin-converter.php
    This seems to return #246; but not ö for ö. Unless the & character is not getting displayed for some reason.
    HttpUtility.HtmlEncode Method (String)
    HttpUtility.HtmlDecode Method (String, TextWriter)
    Option Strict On
    Imports System.Web
    Imports System.IO
    Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.Text = "Form1"
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim myString As String = "ö"
    Dim myEncodedString As String = HttpUtility.HtmlEncode(myString)
    Label1.Text = " " & myEncodedString & " "
    Dim myWriter As New StringWriter()
    HttpUtility.HtmlDecode(myEncodedString, myWriter)
    Label1.Text &= myWriter.ToString
    End Sub
    End Class
    La vida loca

  • Convert text to Iso-8859-1

    Dear experts,
    Is there a function module or method available to convert text to the Iso-8859-1 character set?
    Or might it be possible to integrate it in OPEN DATASET TEXT MODE ENCODING WITH ? Only UTF-8 seems to be available.
    Thanks in advance!

    Hi,
    Use this:
    DATA: iso TYPE cpcodepage.
    "get code page by name
    CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'
      EXPORTING
        external_name       = 'ISO-8859-1'
    IMPORTING
       sap_codepage        = iso
    EXCEPTIONS
       not_found           = 1
       OTHERS              = 2.
    CHECK sy-subrc = 0.
    "open file for reading encoding iso
    OPEN DATASET filename FOR INPUT IN LEGACY TEXT MODE CODE PAGE iso.
    Regards
    Marcin

  • Charset ISO-8859-5

    I am trying to convert ASCII to ISO-8859-5.
    For it I should add new Charset to CharsetProvider.
    What I do:
    1. create file java.nio.charser.spi.CharsetProvider in META-INF\services ( in \jre\lib\rt.jar file );
    2. there:
    sun.io.ByteToCharISO8859_5
    sun.io.CharToByteISO8859_5
    3. I try simple converting:
    String str = new String( b, "ISO-8859-5" );
    error:
    java.lang.ClassCastExeption: sun.io.ByteToCharISO8859_5
    BTW, I try that too:
    Charset charset = Charset.forName("ISO-8859-5");
    CharsetDecoder decoder = charset.newDecoder();
    same error.
    Any ideas, tips, or help would be greatly appreciated.
    Thanks very much!
    Hill

    Hi,
    Why do u want to add it to the CharsetProvider.
    I feel there is no need for that.
    You can just achieve this by following lines of code:
    String ascii = "hsgfjg";
    byte[] byt = null;
    byt = ascii.getBytes("iso-8859-5");
    String strISO-8859-5 = new String(byt);
    I guess this shoulf answer your problem
    Thanks & regards
    Paritosh Wechalekar
    Software Engineer
    L&T Infotech Ltd
    & Chief Controller
    International Mathematics Consortium

  • Converting from CP1252 (Windows) to ISO 8859-1 doesn't work with java.nio?

    Hi
    I'm trying to write some code that checks whether an InputStream contains only characters with a given encoding. I'm using java.nio for that. For tests, I downloaded some character set examples from http://www.columbia.edu/kermit/csettables.html
    When creating the CharsetDecoder, I want to get all errors:
        Charset charset = Charset.forName( encoding );
        CharsetDecoder decoder = charset.newDecoder();
        decoder.onMalformedInput( CodingErrorAction.REPORT );
        decoder.onUnmappableCharacter( CodingErrorAction.REPORT );I then read an InputStream and try to convert it. If that fails, it can't contain the desired encoding:
        boolean isWellEncoded = true;
        ByteBuffer inBuffer = ByteBuffer.allocate( 1024 );
        ReadableByteChannel channel = Channels.newChannel( inputStream );
        while ( channel.read( inBuffer ) != -1 )
          CharBuffer decoded = null;
          try
            inBuffer.flip();
            decoded = decoder.decode( inBuffer );
          catch ( MalformedInputException ex )
            isWellEncoded = false;
          catch ( UnmappableCharacterException ex )
            isWellEncoded = false;
          catch ( CharacterCodingException ex )
            isWellEncoded = false;
          if ( decoded != null )
            LOG.debug( decoded.toString() );
          if ( !isWellEncoded )
            break;
          inBuffer.compact();
        channel.close();
        return isWellEncoded;Now I want to check whether a file containing Windows 1252 characters is ISO-8859-1. From my point of view, the code above should fail when it gets to the Euro symbol (decimal 128), since that's not defined in ISO-8859-1.
    But all I get is a ? character instead:
    (})  125  07/13  175  7D                 RIGHT CURLY BRACKET, RIGHT BRACE
    (~)  126  07/14  176  7E                 TILDE
    [?]  128  08/00  200  80  EURO SYMBOL
    [?]  130  08/02  202  82  LOW 9 SINGLE QUOTEI also tried to replace the faulty character, using
        decoder.onUnmappableCharacter( CodingErrorAction.REPLACE );
        decoder.replaceWith("!");but I still get the question marks.
    I'm probably doing something fundamentally wrong, but I dont get it :-)
    Any help is greatly appreciated!
    Eric

    As a suggestion....create a complete example demonstrating the problem. It shouldn't have channel in it since that wouldn't appear to be the problem (decoding is.) You should create the byte array in the example code - populate it with the byte sequence that you think should work. And your code should then demonstrate that it doesn't. Then post that.

  • Convert utf-8 to iso-8859-1

    Hello,
    sorry for my very bad english
    i use httpxmlrequest to answer a database and show resultin a
    div
    the string means utf-8 encoded by my javascript fonction and,
    of course,
    no result are found in the database.
    How can i convert the string to iso-8859-1 before request the
    database ?
    Thank if you have an idea
    JiBé (France)

    PaulH **AdobeCommunityExpert** a écrit :
    > Jibé wrote:
    >> PaulH **AdobeCommunityExpert** a écrit :
    >> I work with a MS SQL server database encoding in
    iso-8859-1
    >
    > data stored in plain text,char,varchar datatypes (ie not
    "N")?
    datatype of "titre" is varchar(250) and "contenu" is text
    using the
    > ODBC or JDBC (it would be listed as ms sql server in the
    db drivers
    > list) driver?
    I think it's jdbc driver (case of my test computer)
    >
    >> The code :
    >
    > you're not following good i18n practices. while my
    preference is for
    > unicode ("just use unicode" has been my motto for
    years), if you're
    > really only ever going to use french & never need
    the euro symbol then i
    > guess iso-8859-1 (latin-1) is fine.
    Here is a part of the content of my application.cfm
    <cfprocessingdirective pageencoding="iso-8859-1">
    <cfcontent type="text/html; charset=iso-8859-1">
    <cfset setEncoding("URL", "iso-8859-1")>
    <cfset setEncoding("Form", "iso-8859-1")>
    >
    > if you think you might need other languages, including
    the euro symbol,
    > then you should consider unicode. change your text
    columsn to "N" type
    > (nText, nChar, nVarChar) & swap the latin-1
    encodings in the tags above
    > to utf-8.
    I'm going to test that....
    JiBé

  • Convert from ISO 8859-1 encoding to UTF-8

    Hi
    My Os name is 'SunOS ut51109 5.10 Generic_144500-19 sun4v sparc SUNW,T5440'.
    I want to change the encoding of the existing .bcp file from ISO 8859-1 to UTF-8 with out using any temp files as these .bcp file will be pointed by an external table.
    here is the command I issued in the script(ksh file)
    iconv -f ISO8859-1 -t UTF-8 file1.bcp > file1.bcp
    After the script got executed file1 is empty(showing 0 bytes).
    Please correct me or let me know the syntax to be followed to write the data into the same file in UTF-8 format.
    Thanks
    kartheek

    You cannot do conversion from ISO 8859-1 to UTF-8 in-place because the UTF-8 version will generally be longer (unless you convert a pure ASCII file, which does not need conversion in the first place). Therefore, you would have to overwrite what you have not read yet. Instead, convert to a new file with a temporary name, drop the original and rename the temporary back to original. This is not that complicated.
    If the problem is that you want to overwrite a file already open by the database, then rename the incoming file first and then convert copying to the target.
    -- Sergiusz

  • Convert a UTF-8 string to ISO-8859-1 string

    Hello. As you can see from my other post, I am working on internationalization. I could not find an appropriate entry in the forum already.
    I want to convert form data (submitted from an HTML UTF-8 charset page) from the UTF-8 format to ISO-8859-1 format. How do I do that?
    I.e.
    String utfFormat="&#35222;&#32884;&#32773;";
    String isoFormat="";
    // Do magic here
    System.out.println(isoFormat); // out: "&#12375;&#12390;&#12398;" (or whatever it is)
    Can you help?
    Dailysun
    null

    As I said in the other thread (did you read that, BTW?), you shouldn't have to bother with actual character-set conversions. You just tell the InputStream what the Charset is when you read it in, and the OutputStream what Charset to use when you write it out.
    What you're doing is escaping characters by replacing them with numeric entity references--the opposite of what you asked in the other thread. The process is just as simple: cast the char to an int, convert that to a string with String.valueOf(int), and add the "&#" and ";". You can use a regex-based approach like I did over there, but going in this direction, it will be just as easy without them.
    Hiwa, check out that other thread; I think you'll find it amusing (in light of that second link you posted).

  • How convert ISO 8859-1 (Latin-1) to char

    i use java read some web page, it contain ISO 8859-1 (Latin-1) Characters, like this:
    &#233
    &#234(i removed ";" at end)
    how convert it to char?
    thanks.

    Tin,
    I think you're looking for Charset.decode and maybe encode.
    keith.

  • Convert UTF-8 to ISO-8859-1 in JMS receiver

    Hi Freinds,
    We are sending an XML message to the MQ via JMS receiver channel and I need to change the character set from UTF-8 to the ISO-8859-1 while sending it to the MQ queues. Will this be possile?
    Please suggest how can I acheive this.
    Regards,
    Kumar.

    Hi Kumar,
    Try changing the encoding using XSLT mapping and you can call this mapping as shown in this blog:
    /people/michal.krawczyk2/blog/2005/11/01/xi-xml-node-into-a-string-with-graphical-mapping
    or try this wiki page:
    http://wiki.sdn.sap.com/wiki/display/XI/SOAPMessagesin+XI
    Regards
    Suraj

  • Convert XML-String from Codepage utf-16 to ISO-8859-1

    Hi to all experts,
    our system is now unicode with codepage 4102 (UTF-16) and we do an Simple Transformation for creating an XML-String.
    before UniCode : xml_data = <?xml version="1.0" encoding="iso-8859-1"?>#<transactionRequest userID=" .......
    now with UniCode : xml_data = <?xml version="1.0" encoding="utf-16"?>#<transactionRequest userID=".......
    The xml_data transfered to an external Sytem via HTTPS- Communication direct from ABAP.
    The external Sytem send an Error Request:
    <?xml version="1.0" encoding="ISO-8859-1"?>#<transactionResponse>#    <transactionErrorResponse>#        <errorResponse>#            <errorCode>SYS-0001</errorCode>#            <errorDescription>java.lang.Exception: null[ #<?xml version="1.................
    Have you any idea
    Thanks for your help!
    Peter
    Edited by: Peter Pforr on Sep 25, 2008 9:59 AM
    Edited by: Peter Pforr on Sep 25, 2008 10:14 AM

    Darshan,
    Did you get an answer for this question? We have same requirement to create XML file in ISO-8859-1 format with Attributes is set to "Y" and CDATA is being used for data.
    Can you please let me know if you still remember how did you achieve it?
    Satyen...

  • Abap Proxy Convert UTF-8 to ISO-8859-1

    Dear,
    I have the following scenario:
    Abap Proxy-> PI -> WebService.
    I need to change the encondig UTF-8 to ISO-8859-1 when the SAP ECC sends data to the PI.
    How do I do this?
    I have a XSLT program that performs the this conversion, UTF-8 to ISO-8859-1, between PI and WebService.
    Regards,
    Sérgio Salomã

    To understand more about Character Encoding in SAP Process Integration. You can refer the following link:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/502991a2-45d9-2910-d99f-8aba5d79fb42?quicklink=index&overridelayout=true

  • UTF-8 encoding vs ISO 8859-1 encoding

    The iTunes tech specs call for UTF-8 encoding of the XML feed file; a friend of mine uses feed generator software through his blog that uses ISO 8859 encoding. Is there a way to convert the latter to UTF-8 so that iTunes tags may be successfully added?
    When I tried editing his XML file, I got error messages when I submitted the file to RSS feed validator sites (such as http://feedvalidator.org/. Any help or knowledge is appreciated because I am not the least bit expert in this coding arena.

    You don't need to convert iso 8859-1 (us-ascii) to utf-8 unless you have nonstandard characters. Basically, ascii is a subset of utf-8 and for English it will serve you just fine. You can have iTunes tags in the xml file even if the file itself is encoded in iso 8859-1.
    The error you see at feedvalidator.org is most likely a warning.
    Hope this helps!
    - Andy Kim
    Potion Factory
    http://www.potionfactory.com

  • Mail Receiver - Send file in ISO-8859-1 encoding

    Hi,
    I'm sending mail with an attachment using mail adapter, but instead of specified ISO-8859-1 it is converted to UTF-8 no BOM,. Because of that, some characters (ñ,ç, etc) are not transferred properly.
    Settings:
    Message protocol: XIPAYLOAD
    No mail package.
    Transform.ContentType: multipart/mixed; boundary=--AaZz; charset=ISO-8859-1
    Payload:
    multipart/mixed; boundary=AaZz; charset=ISO-8859-1</Content_Type><Content>--AaZz
    Content-Type: text/plain; charset=ISO-8859-1
    Content-Disposition: inline
    File attachment
    AaZz
    Content-Type: text/plain; charset= ISO-8859-1
    Content-Disposition: attachment; filename=TestFile
    iso-8859 characters ñ ç ñ ñ
    AaZz--
    </Content></ns:Mail>
    I need advice in how to force the file to be created with ISO-8859-1 enconding.
    Thanks in advance.
    Regards,
    Iván.

    Hi Jean-Philippe,
    Yes, please check my first post, if you use same settings, and create message as mine, it should work, the TestFile is created as an attachment.
    Include this line in the module configuration with transform key:
    Transform.ContentType: multipart/mixed; boundary=--AaZz;
    If you still have issues, please give me a description of the error.
    Regards,
    Ivan.

  • File adapter ISO-8859-1 encoding problems in XI 3.0

    We are using the XI 3.0 file adapter and are experiencing some XML encoding troubles.
    A SAP R/3 system is delivering an IDoc outbound. XI picks up the IDoc and converts it to an external defined .xml file. The .xml file is send to a connected ftp-server. At the remote FTP server the file is generating an error, as it is expected to arrive in ISO-8859-1 encoding. The Transfer Mode is set to Binary, File Type Text, and Encoding ISO-8859-1.
    The .xml file is encoded correctly in ISO-8859-1, but the problem is that the XML encoding declaration has the wrong value 'UTF-8'.
    Does anybody know of a work around, to change the encoding declaration to ‘ISO-8859-1’ in the message mapping program?

    An example of the XSL code might be as follow:
    <?xml version='1.0'?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method='xml' encoding='ISO-8859-1' />
    <xsl:template match="/">
         <xsl:copy-of select="*" />
    </xsl:template>
    </xsl:stylesheet>

Maybe you are looking for

  • Homesharing with apple tv

    while homesharing with my apple tv will i be using up my internet data?

  • Using a derived table name in a select ...

    In SQL or PL/SQL am I able to use the derived value of a colu,n (which holds a table name) to run an SQL. Basically I want to perform a "select count(*) from table" where table is a list of tables held in another, eg all_tables. EG: all_tables has TA

  • Essbase Integration Services Not Starting

    Hi All, I am using EPM 11.1.2.1 and unable to start the Essbase Integration Services. When I started the services from services.msc, I got the below error: Windows could not start the Hyperion Integration Services on Local Computer. For more informat

  • I can't upgrade my Aperture libraries since update to 3.3 (3.3.1)

    Since I update my Aperture to the 3.3 version (included the latest update which is 3.3.1 I think) I'm unable to upgrade my libraries, which are located on 2 external HDs, via USB. My macbook has only 11.68 GB of free space, and one of the libraries i

  • Bank cost is paid by institute (transferring amounts over sea's)

    Hello all, One of the customers is asking if it is possible for the following. If someone from a foreign continent (for example if someone for Africa is transferring money to Holland) the world bank something holds back a certain amount for bank cost