我已经阅读了许多讨论这个问题的线程,但没有人提出解决这个问题的方法。他们中的大多数都围绕使用合适的字体。我尝试过每一个都没有成功。我知道这个字符串是UTF-8和越南语,因为如果我将它作为ASCII字符串粘贴到Notepad ++中,然后将编码更改为UTF-8就可以了。
输入字符串如下所示;
“Cósáºμndá»
输出字符串应如下所示;
“Cósẵndịchvụthôngdịchmiễnphíkhibạnyê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
答案 0 :(得分:2)
您可以probably将源代码保存为UTF-8并粘贴“输出”(UTF-8)字符串,但假设源代码是ANSI编码,也许您可以将其转换为UTF- 8手动:
/**
* Returns `true` if this string is empty or consists solely of whitespace characters.
*/
public fun CharSequence.isBlank(): Boolean = length == 0 || indices.all { this[it].isWhitespace() }
/**
* Returns `true` if this char sequence is empty (contains no characters).
*/
@kotlin.internal.InlineOnly
public inline fun CharSequence.isEmpty(): Boolean = length == 0