on 03-24-2015 12:17 PM
Hi Experts,
I've got a SOAP to File Scenario (PI 7.4), I'm getting a XML message encoded as Base64 in a field from the web service, I'm using a UDF in mapping to decode an extract the XML file from the dedicated field, than use content conversion to get only the one field.
note, in the XML file it is declare as ISO-8599-8.
than I send it to file receiver adapter as type=text and encoding=ISO-8599-8.
I've also tried to write file as XML and tried using different encoding (UTF-8,ISO-8599-1, cp1255, windows-1255)
the Hebrew characters are always displayed as junk characters when trying to open the file and also in sxi_moni and RWB.
do I need to address in UDF the relevant encoding ?
what am i missing ?
Zevik,
I think, Sender system is sending incorrect data. Please decode the Base64 here Base64 Decode and Encode - Online
Your UDF works fine
return new String(BASE64Decoder.decode(var1.getBytes()));
Input: VGVzdGluZyBIZWJyZXcgYWxwaGFiZXQgINeQ1rjXnNa216PWvteR1rXWvNeZ16og16LWtNeR1rDXqNa015k=
Output: Testing Hebrew alphabet אָלֶף־בֵּית עִבְרִי
Please note, xml reserved characters will be escaped if they are present in data.
Input:PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktOCI/PjxLZXRlckludm9pY2U+PEhl
Ouput:<?xml version="1.0" encoding="iso-8859-8"?><KeterInvoice><He (Which is <?xml version="1.0" encoding="iso-8859-8"?><KeterInvoice><He).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sorry for the delay, I was away on vacation for a week.
this is the the string:
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktOCI/PjxLZXRlckludm9pY2U+PEhlYWRlcj48VHJhbnNhY3Rpb25JRD48L1RyYW5zYWN0aW9uSUQ+PFZlbmRvcl9EVU5TX051bWJlcj5ERTgxMjYwMzk1ODwvVmVuZG9yX0RVTlNfTnVtYmVyPjxWZW5kb3JfVGF4Qm9va19OdW1iZXI+REU4MTI2MDM5NTg8L1ZlbmRvcl9UYXhCb29rX051bWJlcj48VmVuZG9yX05hbWU+16HXmS4g15DXmS4g16TXmS4g15DXmS48L1ZlbmRvcl9OYW1lPjxWZW5kb3JfTnVtYmVyPjgwNTIyNTkwPC9WZW5kb3JfTnVtYmVyPjxJbnZvaWNlX051bWJlcj5UZXN0T3JkZXJMaW5lczwvSW52b2ljZV9OdW1iZXI+PE1hdGNoaW5nX1B1cmNoYXNlX09yZGVyX051bWJlcj40NTAxMDQxMjM3PC9NYXRjaGluZ19QdXJjaGFzZV9PcmRlcl9OdW1iZXI+PE1hdGNoaW5nX1B1cmNoYXNlX09yZGVyX1ZlcnNpb24+PC9NYXRjaGluZ19QdXJjaGFzZV9PcmRlcl9WZXJzaW9uPjxNYXRjaGluZ19TaGlwcGluZ19Ob3RlX051bWJlcj40NTQ2NTwvTWF0Y2hpbmdfU2hpcHBpbmdfTm90ZV9OdW1iZXI+PEN1c3RvbWVyX1NoaXBwaW5nX05vdGVfTnVtYmVyPjQ1NDY1PC9DdXN0b21lcl9TaGlwcGluZ19Ob3RlX051bWJlcj48TWF0Y2hpbmdfUHJvZm9ybWFfSW52b2ljZV9OdW1iZXI+PC9NYXRjaGluZ19Qcm9mb3JtYV9JbnZvaWNlX051bWJlcj48TWF0Y2hpbmdfSW52b2ljZV9EcmFmdF9OdW1iZXI+PC9NYXRjaGluZ19JbnZvaWNlX0RyYWZ0X051bWJlcj48TWF0Y2hpbmdfQ3JlZGl0ZWRfSW52b2ljZV9OdW1iZXI+PC9NYXRjaGluZ19DcmVkaXRlZF9JbnZvaWNlX051bWJlcj48SXNfSW52b2ljZV9CYXNlZF9Pbl9PcmRlcj4xPC9Jc19JbnZvaWNlX0Jhc2VkX09uX09yZGVyPjxJc19JbnZvaWNlX0Jhc2VkX09uX1Byb2Zvcm1hPjA8L0lzX0ludm9pY2VfQmFzZWRfT25fUHJvZm9ybWE+PEludm9pY2VfWWVhcj4yMDE1PC9JbnZvaWNlX1llYXI+PFJlZmVyZW5jZV9JbnZvaWNlX051bWJlcj48L1JlZmVyZW5jZV9JbnZvaWNlX051bWJlcj48SXNzdWVfRGF0ZT4yNi8wMy8yMDE1PC9Jc3N1ZV9EYXRlPjxEZWxpdmVyeV9EYXRlPjwvRGVsaXZlcnlfRGF0ZT48Q3VzdG9tZXJfTmFtZT5KYXJkaW48L0N1c3RvbWVyX05hbWU+PEN1c3RvbWVyX0RVTlNfTnVtYmVyPk5MODAyNjU5OTI1QjAxPC9DdXN0b21lcl9EVU5TX051bWJlcj48Q3VzdG9tZXJfVmF0PjwvQ3VzdG9tZXJfVmF0PjxDdXN0b21lcl9EZXBhcnRtZW50PjwvQ3VzdG9tZXJfRGVwYXJ0bWVudD48Q3VzdG9tZXJfRnVsbF9BZGRyZXNzPjwvQ3VzdG9tZXJfRnVsbF9BZGRyZXNzPjxDdXN0b21lcl9DaXR5X05hbWU+PC9DdXN0b21lcl9DaXR5X05hbWU+PEN1c3RvbWVyX1BPX0JveD48L0N1c3RvbWVyX1BPX0JveD48Q3VzdG9tZXJfU3RhdGU+PC9DdXN0b21lcl9TdGF0ZT48Q3VzdG9tZXJfQ291bnRyeT48L0N1c3RvbWVyX0NvdW50cnk+PEN1c3RvbWVyX1ppcF9Db2RlPjwvQ3VzdG9tZXJfWmlwX0NvZGU+PEN1c3RvbWVyX1Bob25lPjwvQ3VzdG9tZXJfUGhvbmU+PEN1c3RvbWVyX0ZheD48L0N1c3RvbWVyX0ZheD48Q29udGFjdF9QZXJzb25fTmFtZT48L0NvbnRhY3RfUGVyc29uX05hbWU+PENvbnRhY3RfUGhvbmVfTnVtYmVyPjwvQ29udGFjdF9QaG9uZV9OdW1iZXI+PENvbnRhY3RfZW1haWw+PC9Db250YWN0X2VtYWlsPjxUb3RhbF9TdW1fSW5jbHVkZV9WYXRfTG9jYWxfQ3VycmVuY3k+Mjk1MjUwLjE2MDwvVG90YWxfU3VtX0luY2x1ZGVfVmF0X0xvY2FsX0N1cnJlbmN5PjxUb3RhbF9TdW1fQmVmb3JlX1ZhdF9Mb2NhbF9DdXJyZW5jeT4yNTAyMTI8L1RvdGFsX1N1bV9CZWZvcmVfVmF0X0xvY2FsX0N1cnJlbmN5PjxUb3RhbF9WYXRfTG9jYWxfQ3VycmVuY3k+NDUwMzguMTY8L1RvdGFsX1ZhdF9Mb2NhbF9DdXJyZW5jeT48VmF0X1BlcmNlbnRhZ2U+MTg8L1ZhdF9QZXJjZW50YWdlPjxUb3RhbF9TdW1fSW5jbHVkZV9WYXRfRm9yZWlnbl9DdXJyZW5jeT4yOTUyNTAuMTY8L1RvdGFsX1N1bV9JbmNsdWRlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxUb3RhbF9TdW1fQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjI1MDIxMjwvVG90YWxfU3VtX0JlZm9yZV9WYXRfRm9yZWlnbl9DdXJyZW5jeT48VG90YWxfVmF0X0ZvcmVpZ25fQ3VycmVuY3k+NDUwMzguMTY8L1RvdGFsX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxUb3RhbF9EaXNjb3VudF9Mb2NhbF9DdXJyZW5jeT4wPC9Ub3RhbF9EaXNjb3VudF9Mb2NhbF9DdXJyZW5jeT48VG90YWxfRGlzY291bnRfRm9yZWlnbl9DdXJyZW5jeT4wPC9Ub3RhbF9EaXNjb3VudF9Gb3JlaWduX0N1cnJlbmN5PjxUb3RhbF9TdW1fQmVmb3JlX1ZhdF9Mb2NhbF9DdXJyZW5jeV9JbmNsdWRlX0R1c2NvdW50PjI1MDIxMjwvVG90YWxfU3VtX0JlZm9yZV9WYXRfTG9jYWxfQ3VycmVuY3lfSW5jbHVkZV9EdXNjb3VudD48VG90YWxfU3VtX0JlZm9yZV9WYXRfRm9yZWlnbl9DdXJyZW5jeV9JbmNsdWRlX0R1c2NvdW50PjI1MDIxMjwvVG90YWxfU3VtX0JlZm9yZV9WYXRfRm9yZWlnbl9DdXJyZW5jeV9JbmNsdWRlX0R1c2NvdW50PjxMb2NhbF9DdXJyZW5jeT5FVVI8L0xvY2FsX0N1cnJlbmN5PjxGb3JlaWduX0N1cnJlbmN5PkVVUjwvRm9yZWlnbl9DdXJyZW5jeT48SW52b2ljZV9UeXBlPklOVk88L0ludm9pY2VfVHlwZT48TWF0Y2hpbmdfUE9fVHlwZT48L01hdGNoaW5nX1BPX1R5cGU+PFBheW1lbnRfQ29uZGl0aW9ucz48L1BheW1lbnRfQ29uZGl0aW9ucz48RXhjaGFuZ2VfUmF0ZT4xPC9FeGNoYW5nZV9SYXRlPjxHb3Zlcm5tZW50X0ludm9pY2VfTnVtYmVyPjwvR292ZXJubWVudF9JbnZvaWNlX051bWJlcj48UmVtYXJrPjwvUmVtYXJrPjwvSGVhZGVyPjxMaW5lcz48Um93PjxJbnZvaWNlX0xpbmVfTnVtYmVyPjI8L0ludm9pY2VfTGluZV9OdW1iZXI+PE1hdGNoaW5nX1B1cmNoYXNlX09yZGVyX051bWJlcj40NTAxMDQxMjM3PC9NYXRjaGluZ19QdXJjaGFzZV9PcmRlcl9OdW1iZXI+PE1hdGNoaW5nX1B1cmNoYXNlX09yZGVyX0xpbmVfTnVtYmVyPjIwPC9NYXRjaGluZ19QdXJjaGFzZV9PcmRlcl9MaW5lX051bWJlcj48TWF0Y2hpbmdfU2hpcHBpbmdfTm90ZT40NTQ2NTwvTWF0Y2hpbmdfU2hpcHBpbmdfTm90ZT48TWF0Y2hpbmdfU2hpcHBpbmdfTm90ZV9MaW5lX051bWJlcj48L01hdGNoaW5nX1NoaXBwaW5nX05vdGVfTGluZV9OdW1iZXI+PE1hdGNoaW5nX1Byb2Zvcm1hX0ludm9pY2VfTnVtYmVyPjwvTWF0Y2hpbmdfUHJvZm9ybWFfSW52b2ljZV9OdW1iZXI+PE1hdGNoaW5nX1Byb2Zvcm1hX0ludm9pY2VfTGluZV9OdW1iZXI+PC9NYXRjaGluZ19Qcm9mb3JtYV9JbnZvaWNlX0xpbmVfTnVtYmVyPjxTdXBwbGllcl9DYXRhbG9nX051bWJlcj41NTU2NTk8L1N1cHBsaWVyX0NhdGFsb2dfTnVtYmVyPjxTdXBwbGllcl9Vbml0X09mX01lYXN1cmU+PC9TdXBwbGllcl9Vbml0X09mX01lYXN1cmU+PFN1cHBsaWVyX1F1YW50aXR5PjIwMDwvU3VwcGxpZXJfUXVhbnRpdHk+PFN1cHBsaWVyX1VuaXRfUHJpY2VfQmVmb3JlX1ZhdF9Mb2NhbF9DdXJyZW5jeT4xMDYwPC9TdXBwbGllcl9Vbml0X1ByaWNlX0JlZm9yZV9WYXRfTG9jYWxfQ3VycmVuY3k+PFN1cHBsaWVyX1VuaXRfUHJpY2VfQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjEwNjA8L1N1cHBsaWVyX1VuaXRfUHJpY2VfQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxDdXN0b21lcl9DYXRhbG9nX051bWJlcj48L0N1c3RvbWVyX0NhdGFsb2dfTnVtYmVyPjxDdXN0b21lcl9DYXRhbG9nX0Rlc2NyaXB0aW9uPkRzIERheXRvbmEgU0wgKGluY2wga3VzcykgNzAweDM5Mng2OTNtbTwvQ3VzdG9tZXJfQ2F0YWxvZ19EZXNjcmlwdGlvbj48Q3VzdG9tZXJfVW5pdF9PZl9NZWFzdXJlPjwvQ3VzdG9tZXJfVW5pdF9PZl9NZWFzdXJlPjxDdXN0b21lcl9RdWFudGl0eT4yMDA8L0N1c3RvbWVyX1F1YW50aXR5PjxDdXN0b21lcl9Vbml0X1ByaWNlX0JlZm9yZV9WYXRfTG9jYWxfQ3VycmVuY3k+MTA2MDwvQ3VzdG9tZXJfVW5pdF9QcmljZV9CZWZvcmVfVmF0X0xvY2FsX0N1cnJlbmN5PjxDdXN0b21lcl9Vbml0X1ByaWNlX0JlZm9yZV9WYXRfRm9yZWlnbl9DdXJyZW5jeT48L0N1c3RvbWVyX1VuaXRfUHJpY2VfQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxUb3RhbF9MaW5lX1N1bV9JbmNsdWRlX1ZhdF9Mb2NhbF9DdXJyZW5jeT4yNTAuMTY8L1RvdGFsX0xpbmVfU3VtX0luY2x1ZGVfVmF0X0xvY2FsX0N1cnJlbmN5PjxUb3RhbF9MaW5lX1N1bV9CZWZvcmVfVmF0X0xvY2FsX0N1cnJlbmN5PjIxMjwvVG90YWxfTGluZV9TdW1fQmVmb3JlX1ZhdF9Mb2NhbF9DdXJyZW5jeT48TGluZV9Ub3RhbF9WYXRfTG9jYWxfQ3VycmVuY3k+MzguMTY8L0xpbmVfVG90YWxfVmF0X0xvY2FsX0N1cnJlbmN5PjxUb3RhbF9MaW5lX1N1bV9JbmNsdWRlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjI1MC4xNjwvVG90YWxfTGluZV9TdW1fSW5jbHVkZV9WYXRfRm9yZWlnbl9DdXJyZW5jeT48VG90YWxfTGluZV9TdW1fQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjIxMjwvVG90YWxfTGluZV9TdW1fQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxMaW5lX1RvdGFsX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjM4LjE2PC9MaW5lX1RvdGFsX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxMaW5lX1ZhdF9QZXJjZW50YWdlPjE4PC9MaW5lX1ZhdF9QZXJjZW50YWdlPjxMaW5lX1ZhdF9JbmRpY2F0aW9uPjwvTGluZV9WYXRfSW5kaWNhdGlvbj48TGluZV9EaXNjb3VudF9Mb2NhbF9DdXJyZW5jeT48L0xpbmVfRGlzY291bnRfTG9jYWxfQ3VycmVuY3k+PExpbmVfRGlzY291bnRfRm9yZWlnbl9jdXJyZW5jeT48L0xpbmVfRGlzY291bnRfRm9yZWlnbl9jdXJyZW5jeT48TGluZV9JbnZvaWNlX1R5cGU+PC9MaW5lX0ludm9pY2VfVHlwZT48TGluZV9EZWxpdmVyeV9EYXRlPjwvTGluZV9EZWxpdmVyeV9EYXRlPjxMaW5lX1JlbWFyaz48L0xpbmVfUmVtYXJrPjwvUm93PjxSb3c+PEludm9pY2VfTGluZV9OdW1iZXI+MTwvSW52b2ljZV9MaW5lX051bWJlcj48TWF0Y2hpbmdfUHVyY2hhc2VfT3JkZXJfTnVtYmVyPjQ1MDEwNDEyMzc8L01hdGNoaW5nX1B1cmNoYXNlX09yZGVyX051bWJlcj48TWF0Y2hpbmdfUHVyY2hhc2VfT3JkZXJfTGluZV9OdW1iZXI+MTA8L01hdGNoaW5nX1B1cmNoYXNlX09yZGVyX0xpbmVfTnVtYmVyPjxNYXRjaGluZ19TaGlwcGluZ19Ob3RlPjQ1NDY1PC9NYXRjaGluZ19TaGlwcGluZ19Ob3RlPjxNYXRjaGluZ19TaGlwcGluZ19Ob3RlX0xpbmVfTnVtYmVyPjwvTWF0Y2hpbmdfU2hpcHBpbmdfTm90ZV9MaW5lX051bWJlcj48TWF0Y2hpbmdfUHJvZm9ybWFfSW52b2ljZV9OdW1iZXI+PC9NYXRjaGluZ19Qcm9mb3JtYV9JbnZvaWNlX051bWJlcj48TWF0Y2hpbmdfUHJvZm9ybWFfSW52b2ljZV9MaW5lX051bWJlcj48L01hdGNoaW5nX1Byb2Zvcm1hX0ludm9pY2VfTGluZV9OdW1iZXI+PFN1cHBsaWVyX0NhdGFsb2dfTnVtYmVyPjU1NTA4NjwvU3VwcGxpZXJfQ2F0YWxvZ19OdW1iZXI+PFN1cHBsaWVyX1VuaXRfT2ZfTWVhc3VyZT48L1N1cHBsaWVyX1VuaXRfT2ZfTWVhc3VyZT48U3VwcGxpZXJfUXVhbnRpdHk+NTAwPC9TdXBwbGllcl9RdWFudGl0eT48U3VwcGxpZXJfVW5pdF9QcmljZV9CZWZvcmVfVmF0X0xvY2FsX0N1cnJlbmN5PjUwMDwvU3VwcGxpZXJfVW5pdF9QcmljZV9CZWZvcmVfVmF0X0xvY2FsX0N1cnJlbmN5PjxTdXBwbGllcl9Vbml0X1ByaWNlX0JlZm9yZV9WYXRfRm9yZWlnbl9DdXJyZW5jeT41MDA8L1N1cHBsaWVyX1VuaXRfUHJpY2VfQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxDdXN0b21lcl9DYXRhbG9nX051bWJlcj48L0N1c3RvbWVyX0NhdGFsb2dfTnVtYmVyPjxDdXN0b21lcl9DYXRhbG9nX0Rlc2NyaXB0aW9uPkRTIERheXRvbmEgRnVsbCBjb2xvciBpbmNsIDcwMHgzOTJ4NjkzbW08L0N1c3RvbWVyX0NhdGFsb2dfRGVzY3JpcHRpb24+PEN1c3RvbWVyX1VuaXRfT2ZfTWVhc3VyZT48L0N1c3RvbWVyX1VuaXRfT2ZfTWVhc3VyZT48Q3VzdG9tZXJfUXVhbnRpdHk+NTAwPC9DdXN0b21lcl9RdWFudGl0eT48Q3VzdG9tZXJfVW5pdF9QcmljZV9CZWZvcmVfVmF0X0xvY2FsX0N1cnJlbmN5PjUwMDwvQ3VzdG9tZXJfVW5pdF9QcmljZV9CZWZvcmVfVmF0X0xvY2FsX0N1cnJlbmN5PjxDdXN0b21lcl9Vbml0X1ByaWNlX0JlZm9yZV9WYXRfRm9yZWlnbl9DdXJyZW5jeT48L0N1c3RvbWVyX1VuaXRfUHJpY2VfQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxUb3RhbF9MaW5lX1N1bV9JbmNsdWRlX1ZhdF9Mb2NhbF9DdXJyZW5jeT4yOTUwMDA8L1RvdGFsX0xpbmVfU3VtX0luY2x1ZGVfVmF0X0xvY2FsX0N1cnJlbmN5PjxUb3RhbF9MaW5lX1N1bV9CZWZvcmVfVmF0X0xvY2FsX0N1cnJlbmN5PjI1MDAwMDwvVG90YWxfTGluZV9TdW1fQmVmb3JlX1ZhdF9Mb2NhbF9DdXJyZW5jeT48TGluZV9Ub3RhbF9WYXRfTG9jYWxfQ3VycmVuY3k+NDUwMDA8L0xpbmVfVG90YWxfVmF0X0xvY2FsX0N1cnJlbmN5PjxUb3RhbF9MaW5lX1N1bV9JbmNsdWRlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjI5NTAwMDwvVG90YWxfTGluZV9TdW1fSW5jbHVkZV9WYXRfRm9yZWlnbl9DdXJyZW5jeT48VG90YWxfTGluZV9TdW1fQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjI1MDAwMDwvVG90YWxfTGluZV9TdW1fQmVmb3JlX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxMaW5lX1RvdGFsX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjQ1MDAwPC9MaW5lX1RvdGFsX1ZhdF9Gb3JlaWduX0N1cnJlbmN5PjxMaW5lX1ZhdF9QZXJjZW50YWdlPjE4PC9MaW5lX1ZhdF9QZXJjZW50YWdlPjxMaW5lX1ZhdF9JbmRpY2F0aW9uPjwvTGluZV9WYXRfSW5kaWNhdGlvbj48TGluZV9EaXNjb3VudF9Mb2NhbF9DdXJyZW5jeT48L0xpbmVfRGlzY291bnRfTG9jYWxfQ3VycmVuY3k+PExpbmVfRGlzY291bnRfRm9yZWlnbl9jdXJyZW5jeT48L0xpbmVfRGlzY291bnRfRm9yZWlnbl9jdXJyZW5jeT48TGluZV9JbnZvaWNlX1R5cGU+PC9MaW5lX0ludm9pY2VfVHlwZT48TGluZV9EZWxpdmVyeV9EYXRlPjwvTGluZV9EZWxpdmVyeV9EYXRlPjxMaW5lX1JlbWFyaz48L0xpbmVfUmVtYXJrPjwvUm93PjwvTGluZXM+PC9LZXRlckludm9pY2U+
I see that the encoding declaration of the XML inside the base64 string is iso-8859-8, however the encoding of the hebrew characters is obviously UTF-8.
But one thing I noticed as well: The UDF escapes the < an > characters, so your result is no valid XML, but plain text. I think you cannot reach your goal with UDF at all.
As i wrote before, I recommend using a Java mapping. Here in forum are many guys who would assist you for writing a Java mapping for your purpose.
>>> not able to see Hebrew anywhere. maybe it's the import class i used ?
I don't think so. If you really want to validate if the decoded string has any Hebrew char, extend your UDF like this.
String output ="";
try {
output = new String(BASE64Decoder.decode(var1.getBytes()), "UTF-8");
}
catch (Exception e) {
return e.getMessage();
}
Pattern p = Pattern.compile("\\p{InHebrew}");
Matcher m = p.matcher(output);
if (m.find()){
return output;
}
else {
return "not found";
}
Hi experts,
Thank you for all your help, I will think about it and post again if needed.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Experts,
So iv'e tried to change the base64 decoder udf to address the encoding issue with no success.
Hebrew is in Junk characters already in mapping test tab and even in display queue, and also in MONI.
I've checked with supplier of the web service and the Hebrew is OK on there side in the system and there logs.
Any ideas ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I've tried this:
return new String(BASE64Decoder.decode(var1.getBytes()), "ISO-8599-8");
and i get an error while compiling :
Hi Experts,
Thank you all for your answers, You all raised good questions.
1. UDF for decoding Base64 field is working properly.
2. The Hebrew characters in the XML are displayed as junk characters already in MONI after the base64 decoding.
3. I didn't check how it looks in mapping test tab or even in display queue, so ill check that as well.
4. I didn't try to change the encoding using message transformation bean in the receiver file adapter.
5. i read the article (How To… Work with Character Encodings in Process Integration) and it says there that for XML files you need to Use the adapter module 'XmlAnonymizerBean', so ill try that too.
I will try it on Sunday and let you all know.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Zevik,
Once you have extracted the XML via UDF, is it displaying junk even in mapping test tab or even in display queue?
Regards,
Mark
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Zevik,
First target should be properly viewing characters in sxmb_moni.
Is UDF working fine?
Try
byte[] b = new sun.misc.BASE64Decoder().decodeBuffer("input"); OR
byte[] b = javax.xml.blind.DatatypeConverter().decodeBuffer("input");
Once characters are properly displayed in moni. Then, you can write target file in UTF-8 (recomanded) or ISO 8859-8 or cp1255.
You can change prolog of XML after message mapping, using XSLT or Java mapping, but not required. FYI Link1, Link2.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Zevik,
Please find below the UDF and solution provided by to Decode Base64 for a Single field:
==================================================================================================================
If you are using the sap util libraries i.e. aii_utilxi_misc.jar - import this in imported archive - import/mention this in the Archives Used tab in the screenshot below. In the Import Instructions mention - com.sap.aii.utilxi.base64.api.Base64 and create a udf as shown below (add exception handling).
This udf can then be used in your mapping for decoding :
If you want to use apache libraries - Go to the functions tab and add the import -org.apache.commons.codec.binary.Base64.
Create a udf in similar lines - where encoded is the input field value :
byte[] decoded = Base64.decodeBase64(encoded);
String decodedout = String(decoded);
return decodedout;
===============================================================================================================================
Please find the actual thread :
Regards,
Nabendu.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Zevik
Try to change the encoding using message transformation bean in the receiver file adapter.
Transform.Class = com.sap.aii.messaging.adapter.Conversion
Transform.ContentType = text/xml;charset=ISO-8599-8
Thanks,
Indrajit
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Zevik,
The encodings chosen by you seems to be right. Have you check the java code for conversion in this document http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/502991a2-45d9-2910-d99f-8aba5d79f...?
Regards.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.