Cómo insertar caracteres UTF-8 en archivos PDF usando C#

How to Use UTF-8 Encoding and International Languages in PDFs

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF supports UTF-8 Encoding in PDFs because it complies with the Chrome standard. Any character that can be rendered properly within a Chrome browser will be supported by IronPDF. You can be assured that foreign languages will have their characters rendered properly. In this How-To, we will step through how you can render UTF-8 in a PDF.

Quickstart: Generate UTF-8 Encoded PDFs with IronPDF

This example shows how to quickly generate a PDF with UTF-8 encoding using IronPDF. By simply setting the InputEncoding to UTF-8 and using the RenderHtmlAsPdf method, developers can ensure that international characters are displayed correctly. The process is straightforward, requiring only a few lines of code, making it easy for developers to get started with creating Unicode PDFs.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    var renderer = new IronPdf.ChromePdfRenderer();
    renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8;
    var pdf = renderer.RenderHtmlAsPdf("<html><head><meta charset='utf-8'></head><body>こんにちは世界</body></html>");
    pdf.SaveAs("utf8-example.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer

Simple Code Example

When working with IronPDF, we often use extended character sets such as UTF-8 Encoding.

Here we have an example of the string being passed into the RenderHtmlAsPdf method, which expects an HTML string input:

string htmlContent = @"
    <p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>

    <p>أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملا المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.</p>

    <p>ภคนทลาพาธสตารเซฟต แชมป มารเกตตงลมเหลวโยเกรต แลนดบาบนอมครม รสโซ แบรนดไคลแมกซ พซซาโมเดลเสอโครง มอบโซนรายชอ
    แอดมชชน ดอกเตอร พะเรอ มารคเจไดโมจราสเบอรร เอนทรานซออดชนศลปวฒนธรรมเปราะบาง โมจซเรยสวอลนตทรปลเมอร ทป วาไรตบกเมเปล</p>
";
string htmlContent = @"
    <p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>

    <p>أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملا المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.</p>

    <p>ภคนทลาพาธสตารเซฟต แชมป มารเกตตงลมเหลวโยเกรต แลนดบาบนอมครม รสโซ แบรนดไคลแมกซ พซซาโมเดลเสอโครง มอบโซนรายชอ
    แอดมชชน ดอกเตอร พะเรอ มารคเจไดโมจราสเบอรร เอนทรานซออดชนศลปวฒนธรรมเปราะบาง โมจซเรยสวอลนตทรปลเมอร ทป วาไรตบกเมเปล</p>
";
Dim htmlContent As String = "
    <p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>

    <p>أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملا المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.</p>

    <p>ภคนทลาพาธสตารเซฟต แชมป มารเกตตงลมเหลวโยเกรต แลนดบาบนอมครม รสโซ แบรนดไคลแมกซ พซซาโมเดลเสอโครง มอบโซนรายชอ
    แอดมชชน ดอกเตอร พะเรอ มารคเจไดโมจราสเบอรร เอนทรานซออดชนศลปวฒนธรรมเปราะบาง โมจซเรยสวอลนตทรปลเมอร ทป วาไรตบกเมเปล</p>
"
$vbLabelText   $csharpLabel

The above text is wrapped in <p> tags because we're dealing with an HTML string. You can pass this HTML string to IronPDF's Chrome PDF Renderer using methods like RenderHtmlAsPdf.

:path=/static-assets/pdf/content-code-examples/how-to/utf-8.cs
using IronPdf;

const string html_with_utf_8 =
    @"<p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>
    <p>
    أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملاً المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.
    </p>
    <p>
    ภคันทลาพาธสตาร์เซฟตี้ แชมป์ มาร์เก็ตติ้งล้มเหลวโยเกิร์ต แลนด์บาบูนอึมครึม รุสโซ แบรนด์ไคลแม็กซ์ พิซซ่าโมเดลเสือโคร่ง ม็อบโซนรายชื่อ
    แอดมิชชั่น ด็อกเตอร์ พะเรอ มาร์คเจไดโมจิราสเบอร์รี เอนทรานซ์ออดิชั่นศิลปวัฒนธรรมเปราะบาง โมจิซีเรียสวอลนัตทริปลีเมอร์ ทิป วาไรตี้บิ๊กเมเปิล
    </p>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8;

var pdf = renderer.RenderHtmlAsPdf(html_with_utf_8);
pdf.SaveAs("Unicode.pdf");
Imports IronPdf

Private Const html_with_utf_8 As String = "<p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>
    <p>
    أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملاً المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.
    </p>
    <p>
    ภคันทลาพาธสตาร์เซฟตี้ แชมป์ มาร์เก็ตติ้งล้มเหลวโยเกิร์ต แลนด์บาบูนอึมครึม รุสโซ แบรนด์ไคลแม็กซ์ พิซซ่าโมเดลเสือโคร่ง ม็อบโซนรายชื่อ
    แอดมิชชั่น ด็อกเตอร์ พะเรอ มาร์คเจไดโมจิราสเบอร์รี เอนทรานซ์ออดิชั่นศิลปวัฒนธรรมเปราะบาง โมจิซีเรียสวอลนัตทริปลีเมอร์ ทิป วาไรตี้บิ๊กเมเปิล
    </p>"

Private renderer = New ChromePdfRenderer()
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8

Dim pdf = renderer.RenderHtmlAsPdf(html_with_utf_8)
pdf.SaveAs("Unicode.pdf")
$vbLabelText   $csharpLabel

This is the file that the code produced:

To ensure you get perfect encoding of your HTML as a PDF, specify your desired charset in two places:

  • In ChromePdfRenderer.RenderingOptions using System.Text.Encoding.UTF8
  • In your HTML Header:
<html>
    <head>
        <meta charset='utf-8'>
    </head>
    <body>
        こんにちは世界
    </body>
</html>
<html>
    <head>
        <meta charset='utf-8'>
    </head>
    <body>
        こんにちは世界
    </body>
</html>
HTML

More about International Languages

IronPDF supports HTML-To-PDF in non-Latin script languages, including Chinese, Japanese, Arabic, Hebrew, Russian, Thai, and all international languages supported by Unicode, including mixed language documents.

There are two things to consider when working with international languages:

Typefaces

A typeface that supports your character set must be installed on your server. These are normally automatically installed on modern web servers, but older servers may have been installed with older versions of some fonts such as Arial, which may not have full UTF-8 support.

An alternative solution is to specify a Web Font in your CSS, such as those provided by Google Fonts. More information can be found in the article How to Use Google Fonts in Your Next Web Design Project.

Input Encoding

You may have to specify the input encoding of your document to render correctly. You may do this in the following ways:

Adding an HTML "Meta Charset" Tag e.g.

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
HTML

Ready to see what else you can do? Check out our tutorial page here: Addtional Features

Preguntas Frecuentes

¿Cómo puedo crear un PDF con codificación UTF-8 en C#?

Para crear un PDF con codificación UTF-8 en C#, use el método RenderHtmlAsPdf de IronPDF. Primero, asegúrese de que su contenido HTML incluya caracteres codificados en UTF-8, luego configure la propiedad InputEncoding a UTF8 antes de renderizar.

¿Por qué es importante UTF-8 al generar PDFs?

UTF-8 es crucial para la generación de PDFs porque soporta todos los caracteres Unicode, asegurando la correcta representación de caracteres internacionales y especiales. IronPDF utiliza UTF-8 para cumplir con los estándares web modernos, haciéndolo adecuado para el soporte de diversos idiomas.

¿Cuáles son los desafíos típicos con la generación de PDFs UTF-8?

Los desafíos comunes incluyen asegurar la correcta representación de caracteres para escrituras no latinas y gestionar fuentes que soporten conjuntos de caracteres diversos. IronPDF aborda esto permitiendo el uso de fuentes web como Google Fonts y configurando el charset correcto en el HTML.

¿Cómo renderizo escrituras no latinas en un PDF usando C#?

Para renderizar escrituras no latinas en un PDF usando C#, use IronPDF. Asegúrese de que su contenido HTML incluya el conjunto de caracteres necesario y especifique una fuente web compatible si es necesario. IronPDF manejará la representación de escrituras como chino, japonés o árabe.

¿Qué pasos debo seguir para asegurar una correcta codificación UTF-8 en mis PDFs?

Para asegurar una correcta codificación UTF-8 en PDFs, use IronPDF e incluya una etiqueta meta charset="UTF-8" en su HTML. Establezca también el ChromePdfRenderer.RenderingOptions.InputEncoding en UTF8.

¿Cómo puedo solucionar problemas de codificación en PDFs generados usando C#?

Si encuentra problemas de codificación, verifique que su HTML incluya una etiqueta meta charset="UTF-8" y que esté utilizando fuentes que soporten sus caracteres. IronPDF le permite especificar estos ajustes para resolver problemas de codificación.

¿Puedo usar Google Fonts para mejorar el soporte de idiomas internacionales en PDFs?

Sí, Google Fonts se puede usar para mejorar el soporte de idiomas internacionales en PDFs. Con IronPDF, puede especificar estas fuentes web en su HTML, asegurando que todos los caracteres se muestren correctamente en el PDF generado.

¿Cuál es el rol de la etiqueta 'Meta Charset' en la generación de PDFs?

La etiqueta 'Meta Charset' define la codificación de caracteres para su contenido HTML, lo cual es crucial para renderizar texto correctamente en PDFs. IronPDF utiliza esta etiqueta para asegurar que los caracteres codificados en UTF-8 se procesen con precisión.

¿IronPDF es totalmente compatible con .NET 10 cuando se utiliza la generación de PDF UTF-8?

Sí, IronPDF es totalmente compatible con .NET 10, incluso para flujos de trabajo que utilizan HTML codificado en UTF-8 o Unicode. Al ejecutarse en .NET 10, puede seguir usando ChromePdfRenderer.InputEncoding = System.Text.Encoding.UTF8 e incluir la etiqueta <meta charset="UTF-8"> al igual que en versiones anteriores de .NET. IronPDF afirma ser totalmente compatible con .NET 10 en su documentación de características.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 16,154,058 | Versión: 2025.11 recién lanzado