String "iso-8859-1" to "we8iso8859p1"
I have this problem: i need to convert mime content-type charset string to oracle charset string. ie. "iso-8859-1" to "we8iso8859p1" or "windows-1250" to "ee8mswin1250".
Does exist some function for this?
Many thanks. That is what i need. Yes, there are many packages with many procs, i am sorry for this thread.
Many thanks Sergiusz.
Adam
Similar Messages
-
String "iso-8859-1" found in subject line of java mail API(when German char
We have written a mail client using java mail API and it works fine. Some body sends the email with subject line contains German chars(using some other mail client like outlook)
and our mail client is running on the machine whose Local has been set 'German'.
Now, while getting the subject line
Javax.mail.Message email; //local variable
// some how I am intializing email.
String str = email.getSubject();
the value of str returns "Bitte die 4 Items I�schen. Kein Bedarf. Ich kann die=?iso-8859-1?Q?_L=F6schung_nic?="
but actual value subject line was "Bitte die 4 Items I�schen. Kein Bedarf. Ich kann die L�schung nic"
So '�' char was repalced by some arbit chars.
Moreover, Charset.defaultCharset().name() returns 'windows-1252'
Please suggest me how I can get the actual subject line
Thanks
-Sanjeevhttp://forum.java.sun.com/thread.jspa?threadID=741111&messageID=4250621
visit it
by ghanshyam -
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 AMDarshan,
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... -
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="視聴者";
String isoFormat="";
// Do magic here
System.out.println(isoFormat); // out: "しての" (or whatever it is)
Can you help?
Dailysun
nullAs 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 to switch DB string storage format from/to UTF-8 to/from ISO 8859-1 ?
As far as I understand strings in tables are stored by default in an Oracle DB in ISO 8859-1 format.
How can I switch the storage to UTF-8 format?
Do I have to change just a parameter (which ?) or do I have to setup/install the whole DB again?
If just a parameter switching is necessary:
How can I change already existing strings from one format to another?
Does it take place automatically or do I have to issue and explicite convert command (which ?).
PeterPlease refer to
http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm#sthref157
And
http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch11charsetmig.htm#sthref1476
Sybrand Bakker
Senior Oracle DBA -
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.phpi 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 -
I have a code, i want to decode iso88591string, but i got a $=�?=f?se;�rng;�?;�
Is any sugestions how to convert iso8859-1 to windows 1257, Thanks
public static void main(String[] args)
String isoString= new String("$=�Ū=fżse;�rng;�Ż;�");
byte[] stringBytesIso;
try
stringBytesIso = isoString.getBytes("ISO-8859-1");
String utf8String = new String(stringBytesIso, "windows-1257");
System.out.print(stringBytesIso+" "+utf8String);
catch (UnsupportedEncodingException e) { e.printStackTrace();}
}Were you expecting Java to magically convert "Ū" into some character?
Doesn't work that way.I agreed. What you need is a diacritic mapping. Unfortunately, there's no easy way of doing the mapping.
on solution is to have a HashMap where
key = character above 256
value=similiar character to Window ASCII extended
anything less than 256, you don't need to convert
also, looks for patterns to reduce the diacritic mapping hashmap. -
XML file containing an ISO-8859-1encoded string not able to see charcater
We have an XML file with the following encoding:
<?xml version="1.0" encoding="ISO-8859-1"?>
The Oracle 10gR2 database is set with the following encoding.
PARAMETER VALUE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_CHARACTERSET WE8ISO8859P1
There are some characters that are not displaying within SQL Developer, how do I diagnose this as a database or a client issue?Guys, why nobody takes care of at least telling us what characters you cannot see. You describe two random elements of the whole application and expect people to give reasonable answers. Please, read through this forum a bit and you will see how many configuration elements may matter. Then, take some time to describe your problem, including version of software, exact (!) symptoms of the problem, etc. Otherwise, you can just get some guesses instead of a solution!
-- Sergiusz -
Hi there,
When translating a UTF8 file to ISO-8859-1 during loading of that file (using dbms_lob.loadclobfromfile)
I notice that an UTF8 right single quotation mark ' (2019) is converted to an inverted quotation mark ¿.
The left single quotation mark is (correctly) translated to 0060 Grave accent `
My question is; how can I get the (2019) right single quatation mark to be converted to 00B4 Acute Accent ?
Thanks in advance,
ArtIt looks like during the insertion from ASP the Latin 1 string has not been converted to UTF8. Hence you are storing Latin-1 encoding inside a UTF-8 database.
I thought it would automatically be handled by OO4O.True. Did you specify the character set of the NLS_LANG env variable for the OO4O client to WE8ISO8859P1 ? If it was set to UTF8 then Oracle will assume that the encoding coming thru' the ASP page are in UTF-8 , hence no conversion takes place ..
Also may be you should check the CODEPAGE directive and Charset property in your ASP ?
null -
Xslt ecc6 ISO-8859-1 problem when download xml file
Hello,
i create an ABAP test program:
*& Report Z_ABAP_TO_XML *
*& Write the data from an internal ABAP table into an XML document, *
*& and write it onto your frontend computer *
REPORT z_abap_to_xml.
TYPE-POOLS: abap.
CONSTANTS gs_file TYPE string VALUE 'C:\Users\Marco Consultant\Desktop\test.xml'.
* This is the structure for the data to go into the XML file
TYPES: BEGIN OF ts_person,
cust_id(4) TYPE n,
firstname(20) TYPE c,
lastname(20) TYPE c,
END OF ts_person.
* Table for the XML content
DATA: gt_itab TYPE STANDARD TABLE OF char2048.
* Table and work area for the data to fill the XML file with
DATA: gt_person TYPE STANDARD TABLE OF ts_person,
gs_person TYPE ts_person.
* Source table that contains references
* of the internal tables that go into the XML file
DATA: gt_source_itab TYPE abap_trans_srcbind_tab,
gs_source_wa TYPE abap_trans_resbind.
* For error handling
DATA: gs_rif_ex TYPE REF TO cx_root,
gs_var_text TYPE string.
* Fill the internal table
gs_person-cust_id = '3'.
gs_person-firstname = 'Bill'.
gs_person-lastname = 'Gates'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '4'.
gs_person-firstname = 'Frodo'.
gs_person-lastname = 'Baggins'.
APPEND gs_person TO gt_person.
* Fill the source table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "IPERSON".
GET REFERENCE OF gt_person INTO gs_source_wa-value.
gs_source_wa-name = 'IPERSON'.
APPEND gs_source_wa TO gt_source_itab.
* Perform the XSLT stylesheet
TRY.
CALL TRANSFORMATION z_abap_to_xml
SOURCE (gt_source_itab)
RESULT XML gt_itab.
CATCH cx_root INTO gs_rif_ex.
gs_var_text = gs_rif_ex->get_text( ).
gs_var_text = gs_rif_ex->get_text( ).
MESSAGE gs_var_text TYPE 'E'.
ENDTRY.
* Download the XML file to your client
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = gs_file
CHANGING
data_tab = gt_itab
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
and i created XSLT test conversion:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<CUSTOMERS>
<xsl:apply-templates select="//IPERSON/item"/>
</CUSTOMERS>
</xsl:template>
<xsl:template match="IPERSON/item">
<item>
<customer_id>
<xsl:value-of select="CUST_ID"/>
</customer_id>
<first_name>
<xsl:value-of select="FIRSTNAME"/>
</first_name>
<last_name>
<xsl:value-of select="LASTNAME"/>
</last_name>
</item>
</xsl:template>
</xsl:transform>
Seem all correct infact the program download a file XML but the file have the encoding="UTF-16" also if i have specified "iso-8859-1" and if i tried to opend the xml file the file appears not correct because is generated with as first character "#", why?
Below the xml generated..
What i have to do to generate a correct XML without errors?
#<?xml version="1.0" encoding="utf-16"?>
<CUSTOMERS>
<item>
<customer_id>0003</customer_id>
<first_name>Bill</first_name>
<last_name>Gates</last_name>
</item>
<item>
<customer_id>0004</customer_id>
<first_name>Frodo</first_name>
<last_name>Baggins</last_name>
</item>
</CUSTOMERS>hello all!
i resolve the problem using:
* Perform the XSLT stylesheet
g_ixml = cl_ixml=>create( ).
g_stream_factory = g_ixml->CREATE_STREAM_FACTORY( ).
g_encoding = g_ixml->create_encoding( character_set = 'utf-16' "unicode
byte_order = 0 ).
resstream = g_stream_factory->CREATE_OSTREAM_ITABLE( table = gt_xml_itab ).
call method resstream->set_encoding
exporting encoding = g_encoding.
I think it's the right way, i put all my ABAP program updated:
*& Report Z_ABAP_TO_XML *
*& Write the data from an internal ABAP table into an XML document, *
*& and write it onto your frontend computer *
REPORT z_abap_to_xml.
TYPE-POOLS: abap.
CONSTANTS gs_file TYPE string VALUE 'C:UsersMarco ConsultantDesktop est.xml'.
data: g_ixml type ref to if_ixml.
data: g_stream_factory type ref to IF_IXML_STREAM_FACTORY.
data: resstream type ref to if_ixml_ostream.
data: g_encoding type ref to if_ixml_encoding.
* This is the structure for the data to go into the XML file
TYPES: BEGIN OF ts_person,
cust_id(4) TYPE n,
firstname(20) TYPE c,
lastname(20) TYPE c,
END OF ts_person.
* Table for the XML content
DATA: gt_xml_itab TYPE STANDARD TABLE OF char2048.
* Table and work area for the data to fill the XML file with
DATA: gt_person TYPE STANDARD TABLE OF ts_person,
gs_person TYPE ts_person.
* Source table that contains references
* of the internal tables that go into the XML file
DATA: gt_source_itab TYPE abap_trans_srcbind_tab,
gs_source_wa TYPE abap_trans_resbind.
* For error handling
DATA: gs_rif_ex TYPE REF TO cx_root,
gs_var_text TYPE string.
* Fill the internal table
gs_person-cust_id = '3'.
gs_person-firstname = 'Bill'.
gs_person-lastname = 'Gates'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '4'.
gs_person-firstname = 'Frodo'.
gs_person-lastname = 'Baggins'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '5'.
gs_person-firstname = 'Frodo'.
gs_person-lastname = 'Baggins'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '6'.
gs_person-firstname = 'Frodo'.
gs_person-lastname = 'Baggins'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '7'.
gs_person-firstname = 'Frodo'.
gs_person-lastname = 'Baggins'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '8'.
gs_person-firstname = 'Frodo'.
gs_person-lastname = 'Baggins'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '9'.
gs_person-firstname = 'Frodo'.
gs_person-lastname = 'Baggins'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '10'.
gs_person-firstname = 'Frodo'.
gs_person-lastname = 'Baggins'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '11'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
gs_person-cust_id = '88'.
gs_person-firstname = 'Frodoèé'.
gs_person-lastname = 'Baggins~¦Üu0192'.
APPEND gs_person TO gt_person.
* Fill the source table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "IPERSON".
GET REFERENCE OF gt_person INTO gs_source_wa-value.
gs_source_wa-name = 'IPERSON'.
APPEND gs_source_wa TO gt_source_itab.
* Perform the XSLT stylesheet
g_ixml = cl_ixml=>create( ).
g_stream_factory = g_ixml->CREATE_STREAM_FACTORY( ).
g_encoding = g_ixml->create_encoding( character_set = 'utf-16' "unicode
byte_order = 0 ).
resstream = g_stream_factory->CREATE_OSTREAM_ITABLE( table = gt_xml_itab ).
call method resstream->set_encoding
exporting encoding = g_encoding.
TRY.
CALL TRANSFORMATION z_abap_to_xml
SOURCE (gt_source_itab)
RESULT XML gt_xml_itab.
CATCH cx_root INTO gs_rif_ex.
gs_var_text = gs_rif_ex->get_text( ).
gs_var_text = gs_rif_ex->get_text( ).
MESSAGE gs_var_text TYPE 'E'.
ENDTRY.
* Download the XML file to your client
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = gs_file
FILETYPE = 'BIN'
CHANGING
data_tab = gt_xml_itab
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*-- we don't need the stream any more, so let's close it...
CALL METHOD resstream->CLOSE( ).
CLEAR resstream. -
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 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 -
How to set the Xml Encoding ISO-8859-1 to Transformer or DOMSource
I have a xml string and it already contains an xml declaration with encoding="ISO-8859-1". (In my real product, since some of the element/attribute value contains a Spanish character, I need to use this encoding instead of UTF-8.) Also, in my program, I need to add more attributes or manipulate the xml string dynamically, so I create a DOM Document object for that. And, then, I use Transformer to convert this Document to a stream.
My problme is: Firstly, once converted through the Transformer, the xml encoding changed to default UTF-8, Secondly, I wanted to check whether the DOM Document created with the xml string maintains the Xml Encoding of ISO-8859-1 or not. So, I called Document.getXmlEncoding(), but it is throwing a runtime error - unknown method.
Is there any way I can maintain the original Xml Encoding of ISO-8859-1 when I use either the DOMSource or Transformer? I am using JDK1.5.0-12.
Following is my sample program you can use.
I would appreciate any help, because so far, I cannot find any answer to this using the JDK documentation at all.
Thanks,
Jin Kim
import java.io.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Attr;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
public class XmlEncodingTest
StringBuffer xmlStrBuf = new StringBuffer();
TransformerFactory tFactory = null;
Transformer transformer = null;
Document document = null;
public void performTest()
xmlStrBuf.append("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n")
.append("<TESTXML>\n")
.append("<ELEM ATT1=\"Yes\" />\n")
.append("</TESTXML>\n");
// the encoding is set to iso-8859-1 in the xml declaration.
System.out.println("initial xml = \n" + xmlStrBuf.toString());
try
//Test1: Use the transformer to ouput the xmlStrBuf.
// This shows the xml encoding result from the transformer which will change to UTF-8
tFactory = TransformerFactory.newInstance();
transformer = tFactory.newTransformer();
StreamSource ss = new StreamSource( new StringBufferInputStream( xmlStrBuf.toString()));
System.out.println("Test1 result = ");
transformer.transform( ss, new StreamResult(System.out));
//Test2: Create a DOM document object for xmlStrBuf and manipulate it by adding an attribute ATT2="No"
DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dfactory.newDocumentBuilder();
document = builder.parse( new StringBufferInputStream( xmlStrBuf.toString()));
// skip adding attribute since it does not affect the test result
// Use a Transformer to output the DOM document. the encoding becomes UTF-8
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(System.out);
System.out.println("\n\nTest2 result = ");
transformer.transform(source, result);
catch (Exception e)
System.out.println("<performTest> Exception caught. " + e.toString());
public static void main( String arg[])
XmlEncodingTest xmlTest = new XmlEncodingTest();
xmlTest.performTest();
}Thanks DrClap for your answer. With your information, I rewrote the sample program as in the following, and it works well now as I intended! About the UTF-8 and Spanish charaters, I think you are right. It looks like there can be many factors involved on this subject though - for example, the real character sets used to create an xml document, and the xml encoding information declared will matter. The special character I had a trouble was u00F3, and somehow, I found out that Sax Parser or even Document Builder parser does not like this character when encoding is set to "UTF-8" in the Xml document. My sample program below may not be a perfect example, but if you replaces ISO-8859-1 with UTF-8, and not setting the encoding property to the transfermer, you may notice that the special character in my example is broken in Test1 and Test2. In my sample, I decided to use ByteArrayInputStream instead of StringBufferInpuptStream because the documentation says StringBufferInputStream may have a problem with converting characters into bytes.
Thanks again for your help!
Jin Kim
import java.io.*;
import java.util.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Attr;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
* XML encoding test for Transformer
public class XmlEncodingTest2
StringBuffer xmlStrBuf = new StringBuffer();
TransformerFactory tFactory = null;
Document document = null;
public void performTest()
xmlStrBuf.append("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n")
.append("<TESTXML>\n")
.append("<ELEM ATT1=\"Resoluci�n\">\n")
.append("Special charatered attribute test")
.append("\n</ELEM>")
.append("\n</TESTXML>\n");
// the encoding is set to iso-8859-1 in the xml declaration.
System.out.println("**** Initial xml = \n" + xmlStrBuf.toString());
try
//TransformerFactoryImpl transformerFactory = new TransformerFactoryImpl();
//Test1: Use the transformer to ouput the xmlStrBuf.
tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
byte xmlbytes[] = xmlStrBuf.toString().getBytes("ISO-8859-1");
StreamSource streamSource = new StreamSource( new ByteArrayInputStream( xmlbytes ));
ByteArrayOutputStream xmlBaos = new ByteArrayOutputStream();
Properties transProperties = transformer.getOutputProperties();
transProperties.list( System.out); // prints out current transformer properties
System.out.println("**** setting the transformer's encoding property to ISO-8859-1.");
transformer.setOutputProperty("encoding", "ISO-8859-1");
transformer.transform( streamSource, new StreamResult( xmlBaos));
System.out.println("**** Test1 result = ");
System.out.println(xmlBaos.toString("ISO-8859-1"));
//Test2: Create a DOM document object for xmlStrBuf to add a new attribute ATT2="No"
DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dfactory.newDocumentBuilder();
document = builder.parse( new ByteArrayInputStream( xmlbytes));
// skip adding attribute since it does not affect the test result
// Use a Transformer to output the DOM document.
DOMSource source = new DOMSource(document);
xmlBaos.reset();
transformer.transform( source, new StreamResult( xmlBaos));
System.out.println("\n\n****Test2 result = ");
System.out.println(xmlBaos.toString("ISO-8859-1"));
//xmlBaos.flush();
//xmlBaos.close();
catch (Exception e)
System.out.println("<performTest> Exception caught. " + e.toString());
finally
public static void main( String arg[])
XmlEncodingTest2 xmlTest = new XmlEncodingTest2();
xmlTest.performTest();
} -
JasperReports Integration PDF is created with ISO-8859-1 instead of UTF-8
Hi,
This is a strange problem i'm struggling with. Since about one month the PDF's are created with the wrong character set. Instead of UTF-8 (this is also given as a parameter calling the procedure as you see below) the PDF are always created with ISO-8859-1.
declare
l_jasper_report_url VARCHAR2(100) DEFAULT 'http://localhost:8180/JasperReportsIntegration/report';
l_rep_name VARCHAR2(80) DEFAULT'SLRReports/SLR_Statistic_Service_Level_Report_Monat';
l_rep_format VARCHAR2(10) DEFAULT 'pdf';
l_data_source VARCHAR2(20) DEFAULT 'default';
l_rep_locale VARCHAR2(10) DEFAULT 'de_CH';
l_rep_encoding VARCHAR2(10) DEFAULT 'UTF-8';
l_StartDate DATE;
l_EndDate DATE;
l_MinDowntime INTEGER DEFAULT 1;
l_ServiceHour CHAR DEFAULT 'Y';
l_name VARCHAR2(50);
l_typ VARCHAR2(20) DEFAULT 'monatsreport_ccps';
l_additional_params VARCHAR2(200);
l_mime_type VARCHAR2(30);
l_blob BLOB;
BEGIN
l_StartDate := to_date('01.'||to_char( add_months(SYSDATE,-12),'MM.YYYY'),'DD.MM.YYYY');
l_EndDate := to_date('30.'||to_char( add_months(SYSDATE,-1),'MM.YYYY'),'DD.MM.YYYY');
l_name := 'slr-statistik-'||to_char(l_StartDate,'YYYY-MM')||'.pdf';
l_additional_params := 'UserName=SYSTEM'||chr(38)||'String_StartDate='||to_char(l_StartDate,'dd.mm.yyyy')||chr(38)||'String_EndDate='||to_char(l_EndDate,'dd.mm.yyyy')||chr(38)||'SLR_MinDowntime='||l_MinDowntime||chr(38)||'SLR_ServiceHour='||chr(38)||l_ServiceHour;
xlog ('PRC_GET_REPORT_TUNNEL', 'url (orig):' || l_rep_name||':'||l_additional_params);
-- generate the report and return in BLOB
xlib_jasperreports.set_report_url (l_jasper_report_url);
xlib_jasperreports.get_report (
p_rep_name => l_rep_name,
p_rep_format => l_rep_format,
p_data_source => l_data_source,
p_rep_locale => l_rep_locale,
p_rep_encoding => l_rep_encoding,
p_additional_params => l_additional_params,
p_out_blob => l_blob,
p_out_mime_type => l_mime_type );
dbms_output.put_line('p_out_mime_type: '||l_mime_type);
-- insert into report (id,name,typ,mime_type,lob_text,datum) values (p_report_seq.nextval,l_name,l_typ,l_mime_type,l_blob,sysdate);
-- commit;
-- apex_application.g_unrecoverable_error := TRUE;
EXCEPTION
WHEN OTHERS THEN
xlog ('PUT_BLB', SQLERRM, 'ERROR');
RAISE;
END;
It looks like the procedure UTL_HTTP.get_header ignores the encoding parameter and overwrites it with ISO-8859-1. I also tried to set it with UTL_HTTP.set_header before calling UTL_HTTP.get_header buth that didn't help either.
Then I started the JVM is started with the UTF-8 option and that made no change.
There were no new installation on Oracle, tomcat or JasperReports side. So I'm wondering what has caused this string behaviour.
Does anyone had this problem before or has a solution for it?
I appreciate your help very much.
Thanks and regards,
ChrisHi,
As my understanding, you could choose the encoding ways by yourself:
Change your Internet Explorer 9 language
encoding settings
Alex Zhao
Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. -
Mail adapter module UTF-8 to ISO-8859-1 conversion
Hi!
I've a problem with a mail attachment which is generated by an adapter module for the mail adapter. The content type is set to "Application/EDIFACT; charset=iso-8859-1" when I add the attachment, but the mail adapter ignores the charset-setting.
Therefore german "umlauts" like ü are displayed in a wrong way: ü
When I set the content, I transform it in ISO-8859-1 : attachment.setContent(edifactString.getBytes("ISO-8859-1"),"ISO-8859-1");
When I test the result of edifactString.getBytes("ISO-8859-1"), I get the String in the right character encoding, but the mail adapter seems to "fix" the encoding
I also tried to use the messageTransformBean, but it doesn't worked.
Anyone knows how to solve this issue?
Best regards,
DanielHi all!
I found a solution for this problem: First I used the TextPayload-Object for the Attachment which should be added. It seems that the TextPayload-Object has some bugs handling different encodings (handels only Unicode and deletes the charset=... setting from the ContentType).
When using the Payload object for the attachment (which handles binary data), there is no conversion to Unicode, so I get my attachment as desired (but still without the charset-setting).
Best regards,
Daniel
Maybe you are looking for
-
How can I make my user input on the same line as the question?
The only way I know of doing it is System.out.println ("Please enter an uppercase letter of the English Alphabet: "); letter = dataIn.readLine ();But that makes Please enter an uppercase letter of the English Alphabet: **User input here, a
-
HT1918 help with changing rescue email account
Hey folks, My apple ID is using an invalid email address...its really old. I want to change it to the email address I submitted for my resue email address. Itunes will not allow the change because the new email addy is already assigned as a rescue
-
Hello, After a Mac update, flash player (along with silverlight) asked to be installed when I tried to watch video content or play games. I installed flash player and it reports being successful and appears in my applications. However, I cannot wat
-
N900 is now 2 bucks cheaper than N97 on nokia webs...
Hi everyone, N900 is now $569 and N97 is now $571. Offer ends Nov 30 2009
-
I have a Solaris 8 machine that was having a hard drive issue. I shut the system down and then it will not boot. I booted off a CD and ran fsck /dev/rdsk/c0t0d0s0 and it came back with a superblock error and I typed yes to fix it. I then tried to boo