Convert Decimal NCRs Code into UTF-8 in java (JSP)

java, jsp, utf-8

Solution

I created a custom function which converts DecimalNCR to `String`.

public static String ConvertDecimalNCRToString(String hex)
{
    String myString = hex.replace("&#", "");
    String[] split = myString.split(";");
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < split.length; i++) 
    {
        sb.append((char)Integer.parseInt(split[i]));
    }
    return sb.toString();
}

This converts successfully your supplied `String`.

EDIT I tested the above function with Chinese `游鍚堃`,`你好你怎么样` and Farsi (`عتباري` , and `مرحبا كيف حالك`) character it provided correct results.

Problem

I was trying to decode string which in FARSI to UTF-8 but then i checked browser itself convert FARSI string into Decimal NCRs Code How i can convert Decimal NCRs Code into UTF-8 ?? ``` String farMsg = "عتباري"; String finalMsg = new String(farMsg.getBytes(),"UTF-8"); System.out.println("\n Farsi Message \n" + finalMsg); ``` when i am trying convert using above code it is working fine but if i am using same string from an input box of `JSP` page its is giving me some output like this ``` &#1593;&#1578;&#1576;&#1575;&#1585;&#1610; ``` What modification do I need to do for converting into same. EDIT I entered `عتباري` in the jsp input box and in used `request.getParameter("faMSg")` to get the value and here i got `&#1593;&#1578;&#1576;&#1575;&#1585;&#1610;` but i should get `عتباري`

Original source