Escape Latin Characters
Posted on
16th Feb 2014 07:03 pm by
admin
I need to escape latin characters in an xml doc. Example: "é" is escaped to "é". I thought I could use the ASCII function, but SELECT ASCII('é') FROM DUAL in Oracle gives me 50089.
I coded this as a quick fix, but I'm sure there's a better way.
FUNCTION escape_latin(p_str IN VARCHAR2) RETURN VARCHAR2 IS
v_str VARCHAR2(3000) := p_str;
BEGIN
v_str := REPLACE(v_str, 'À', 'À');
v_str := REPLACE(v_str, 'Ã', 'Á');
v_str := REPLACE(v_str, 'Â', 'Â');
v_str := REPLACE(v_str, 'Ã', 'Ã');
v_str := REPLACE(v_str, 'Ä', 'Ä');
v_str := REPLACE(v_str, 'Ã…', 'Å');
v_str := REPLACE(v_str, 'Æ', 'Æ');
v_str := REPLACE(v_str, 'Ç', 'Ç');
v_str := REPLACE(v_str, 'È', 'È');
v_str := REPLACE(v_str, 'É', 'É');
v_str := REPLACE(v_str, 'Ê', 'Ê');
v_str := REPLACE(v_str, 'Ë', 'Ë');
v_str := REPLACE(v_str, 'ÃŒ', 'Ì');
v_str := REPLACE(v_str, 'Ã', 'Í');
v_str := REPLACE(v_str, 'ÃŽ', 'Î');
v_str := REPLACE(v_str, 'Ã', 'Ï');
v_str := REPLACE(v_str, 'Ã', 'Ð');
v_str := REPLACE(v_str, 'Ñ', 'Ñ');
v_str := REPLACE(v_str, 'Ã’', 'Ò');
v_str := REPLACE(v_str, 'Ó', 'Ó');
v_str := REPLACE(v_str, 'Ô', 'Ô');
v_str := REPLACE(v_str, 'Õ', 'Õ');
v_str := REPLACE(v_str, 'Ö', 'Ö');
v_str := REPLACE(v_str, '×', '×');
v_str := REPLACE(v_str, 'Ø', 'Ø');
v_str := REPLACE(v_str, 'Ù', 'Ù');
v_str := REPLACE(v_str, 'Ú', 'Ú');
v_str := REPLACE(v_str, 'Û', 'Û');
v_str := REPLACE(v_str, 'Ü', 'Ü');
v_str := REPLACE(v_str, 'Ã', 'Ý');
v_str := REPLACE(v_str, 'Þ', 'Þ');
v_str := REPLACE(v_str, 'ß', 'ß');
v_str := REPLACE(v_str, 'Ã ', 'à');
v_str := REPLACE(v_str, 'á', 'á');
v_str := REPLACE(v_str, 'â', 'â');
v_str := REPLACE(v_str, 'ã', 'ã');
v_str := REPLACE(v_str, 'ä', 'ä');
v_str := REPLACE(v_str, 'Ã¥', 'å');
v_str := REPLACE(v_str, 'æ', 'æ');
v_str := REPLACE(v_str, 'ç', 'ç');
v_str := REPLACE(v_str, 'è', 'è');
v_str := REPLACE(v_str, 'é', 'é');
v_str := REPLACE(v_str, 'ê', 'ê');
v_str := REPLACE(v_str, 'ë', 'ë');
v_str := REPLACE(v_str, 'ì', 'ì');
v_str := REPLACE(v_str, 'Ã', 'í');
v_str := REPLACE(v_str, 'î', 'î');
v_str := REPLACE(v_str, 'ï', 'ï');
v_str := REPLACE(v_str, 'ð', 'ð');
v_str := REPLACE(v_str, 'ñ', 'ñ');
v_str := REPLACE(v_str, 'ò', 'ò');
v_str := REPLACE(v_str, 'ó', 'ó');
v_str := REPLACE(v_str, 'ô', 'ô');
v_str := REPLACE(v_str, 'õ', 'õ');
v_str := REPLACE(v_str, 'ö', 'ö');
v_str := REPLACE(v_str, '÷', '÷');
v_str := REPLACE(v_str, 'ø', 'ø');
v_str := REPLACE(v_str, 'ù', 'ù');
v_str := REPLACE(v_str, 'ú', 'ú');
v_str := REPLACE(v_str, 'û', 'û');
v_str := REPLACE(v_str, 'ü', 'ü');
v_str := REPLACE(v_str, 'ý', 'ý');
v_str := REPLACE(v_str, 'þ', 'þ');
v_str := REPLACE(v_str, 'ÿ', 'ÿ');
RETURN v_str;
END escape_latin;
Is there a built in function I can use to make this cleaner and shorter?
Thanks
No comments posted yet
Your Answer:
Login to answer
196
17
Other forums
Mail Script Problems
I have created a PHP mail script. I am having a problem though. In $body i am trying to put two va
replacements
I have a variable in my PHP script like
ASSFDDDDDDDDDDDDDASDDDDDDDDARYTRHKKHHHHHHHHHHH and p
PHP FTP Can't upload Big FIles
Anyone had any success using FTP to upload a file say 90m?
im using ftp_put and it returns fa
Batch Session SM35 stuck in status 'in Background
Hi Experts,
I am facing a problem with Batch Input session SM35.
The batch se
Multithreading in Oracle (Java, SQLJ, Pro*C,??) on 10g
I am investigating how to run a Java stored procedure in multithread mode.
I know that if I chang
Need help: how to catch acess of undefined class properties
Hello. I am learning OO with PHP and have hit a problem.
Some code runs as perfectly valid code,
PHP If Else statement for breadcrumb
Hi
I am trying to use a PHP if else statement to display a breadcrumb link on wordpress
Product categories for registration
Dear all,
We are going live with the Supplier registered next week. At standard, the 'sel
JSON SORT WITH PHP
I have two products that I want to sort by say "Id:17, value: xxx" using php
The page w
building a function with multiple outputs
I want to build a function that has multiple outputs.
I know but am not to sure how I should