我已经阅读了许多讨论这个问题的主题,但都没有提出解决这个问题的方法。他们大多围绕使用合适的字体。我尝试过其中的每一个都没有成功。我知道这个字符串是UTF-8和越南语,因为如果我将它作为ASCII字符串粘贴到Notepad ++中,然后将编码更改为UTF-8,它就可以工作。如何使用itextsharp在.pdf文档中显示越南文字符?
输入字符串看起来像这样;
“Cósáºñndá»
输出字符串应该像这样;
“Cósẵndịchvụthôngdịchmiễnphíkhibêêyêucầu。”
我的代码只是产生第一个字符串。 任何帮助,不胜感激。我在这里撕掉我的头发 这是我的代码;
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports System.IO
Imports System.Text
Imports System.Collections.Generic
Module TextToPdf
Dim pdfWrite As PdfWriter
Dim pdfDoc As Document
Dim pdfFont As Font
Sub Main()
pdfDoc = New Document(PageSize.LETTER)
pdfFont = New Font(BaseFont.CreateFont(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "vuArial.ttf"), BaseFont.IDENTITY_H, BaseFont.EMBEDDED), 15)
pdfWrite = PdfWriter.GetInstance(pdfDoc, New FileStream("../tmp/vietnamese.pdf", FileMode.Create))
pdfDoc.Open()
pdfDoc.Add(New Paragraph("Có sẵn dịch vụ thông dịch miễn phà khi bạn yêu cầu.", pdfFont))
pdfDoc.Close()
End Sub
End Module
*我知道这个字符串是UTF-8和越南,因为如果我把它粘贴到记事本++为ASCII字符串,然后更改编码设置为UTF-8它的工作原理* - 无。该字符串包含字符,而不是utf-8。你在记事本中做的是使用一种编码将一个奇怪的字符串转换为字节,并将它们转换回发出不同字符的字符。你可以在java中做同样的事情,但这样做会无能为力。而是使用适当的编码为您的java文件并将其告诉您的java编译器。或者使用** \ uXXXX **转义。 – mkl