It's never a good idea to store a Unicode character such as â‚¹ in your source code. Plenty of things can go wrong if you do so:
- Somebody can save the file using an encoding different from Unicode, for instance, the double-byte rupee character can be interpreted as two separate bytes representing two different characters.
- Even if your file is stored correctly, maybe your compiler will read it using the wrong encoding, interpreting the double-byte character as two separate characters.
From your code sample, it's evident that you're not familiar with the concept known as encoding. When creating a
Font object, you pass the rupee symbol as encoding.
The correct way to achieve what you want in iText 7 looks like this:
PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.IDENTITY_H, true); doc.add(new Paragraph("\u20B9 is a Rupee character").setFont(font));
Note that there are two possible Unicode values for the Rupee symbol (source Wikipedia):
\u20B9 is the value you're looking for; the alternative value is
\u20A8 (which looks like this: â‚¨).
Note that it's very important to check if the font you're using knows how to draw the symbol. If it doesn't, nothing will show up on your page.
Please take a look at the RupeeSymbol example to learn more.
Click this link if you want to see how to answer this question in iText 5.