Giter Club home page Giter Club logo

Comments (4)

jarontai avatar jarontai commented on June 21, 2024

Hi there, I suspect it might have something to do with the string replacement logic, could you provide a minimal reproducible example?

from html2md.

arturograu avatar arturograu commented on June 21, 2024

Hi! any website in Spanish is giving the same results.
For example you can try with this HTML:

<html data-wf-domain="www.fluttered.io" data-wf-page="6183aa4520ec744651be4f39" data-wf-site="6132572ab3d055781e46979f" lang="es" class=" w-mod-js w-mod-ix" translate="no"><head><style>.wf-force-outline-none[tabindex="-1"]:focus{outline:none;}</style><meta charset="utf-8"><title>Política de privacidad - Fluttered</title><meta content="Toda la información que necesitas para saber como almacenamos y tratamos tus datos para proteger tu privacidad y cumplir con las leyes LOPD y RGPD." name="description">
<link rel="alternate" hreflang="en" href="https://en.fluttered.io">

</head><body><a fs-cc="manager" href="#" class="ck-prefmanager-w w-inline-block" style="display: flex; opacity: 1;"><div fs-cc="open-preferences" class="ck-preference__btn" role="button" tabindex="0"><img src="https://uploads-ssl.webflow.com/6132572ab3d055781e46979f/61b78992a7ce6ea9ddb7ca5d_ck__cookie.svg" loading="lazy" alt="" class="ck-preference__icon"><div class="ck-preference-txt">Ajustes de cookies</div></div></a><div fs-cc="preferences" class="ck-preference-w" style="display: none;"><div fs-cc="close" class="ck-preference__bg" role="button" tabindex="0"></div><div class="ck-preference__scroll-w"><div class="ck-modal"><a fs-cc="close" href="#" class="ck-modal__exit-btn w-inline-block"><div class="ck__exitbtn__line is--left"></div><div class="ck__exitbtn__line is--right"></div><div class="ck-sr__only">Close Cookie Preference Manager</div></a><div class="ck-modal__content-w"><div class="ck-title">Configuración de cookies</div><div class="text-block">Al hacer click en “Aceptar todas las cookies”, aceptas que guardemos cookies en tu dispositivo para mejorar tu experiencia de usuario y analizar el uso que se hace del sitio web. <a href="/cookies">Más información</a>.</div><div class="ck-form-w w-form"><form id="ck-form" name="wf-form-ck-form" data-name="ck-form" method="get" class="ck-form" aria-label="ck-form"><div class="ck-radio-w is--not-allowed w-clearfix"><div class="ck-radio__btn is--checked is--not-allowed"></div><div class="ck-radio__label is--not-allowed">Cookies estrictamente necesarias (Siempre activas)</div><div class="text-span">Cookies requeridas para habilitar el funcionamiento básico de la web.</div></div><label class="w-checkbox ck-radio-w ck-radio-hidden w-clearfix"><div class="w-checkbox-input w-checkbox-input--inputType-custom ck-radio__btn"></div><input type="checkbox" id="fs__marketing-2" name="fs__marketing-2" data-name="Fs Marketing 2" fs-cc-checkbox="marketing" style="opacity:0;position:absolute;z-index:-1"><span for="fs__marketing-2" class="ck-radio__label w-form-label">Marketing</span><div class="ck-radio__desc">Cookies used to deliver advertising that is more relevant to you and your interests.</div></label><label class="w-checkbox ck-radio-w ck-radio-hidden w-clearfix"><div class="w-checkbox-input w-checkbox-input--inputType-custom ck-radio__btn"></div><input type="checkbox" id="fs__personalization-2" name="fs__personalization-2" data-name="Fs Personalization 2" fs-cc-checkbox="personalization" style="opacity:0;position:absolute;z-index:-1"><span for="fs__personalization-2" class="ck-radio__label w-form-label">Personalization<br></span><div class="ck-radio__desc">Cookies allowing the website to remember choices you make (such as your user name, language, or the region you are in).</div></label><label class="w-checkbox ck-radio-w w-clearfix"><div class="w-checkbox-input w-checkbox-input--inputType-custom ck-radio__btn"></div><input type="checkbox" id="fs__analytics-2" name="fs__analytics-2" data-name="Fs Analytics 2" fs-cc-checkbox="analytics" style="opacity:0;position:absolute;z-index:-1"><span for="fs__analytics-2" class="ck-radio__label w-form-label">Analítica<br></span><div class="ck-radio__desc">Estas cookies nos ayudan a detectar problemas técnicos, obtener información del rendimiento del sitio web y entender cómo los visitantes interactúan con el sitio.</div></label><div class="ck-modal__btns-w in-pref-manger"><a fs-cc="allow" href="#" class="ft-button is--full-width w-inline-block" role="button" tabindex="0"><div class="ck-button__txt">Aceptar todas las cookies</div></a><a fs-cc="submit" href="#" class="ck-button-w-2 is--secondary is--fullwidth w-inline-block" role="button" tabindex="0"><div>Guardar configuración</div></a></div></form><div class="w-form-done" tabindex="-1" role="region" aria-label="ck-form success"><div class="text-block-5">Made by <a href="https://flinch77.com&amp;ref=cookie-cloneable" target="_blank">Flinch 77</a></div></div><div class="w-form-fail" tabindex="-1" role="region" aria-label="ck-form failure"><div>Oops! Something went wrong while submitting the form.</div></div></div></div></div></div></div><div class="ck-cookie-w"><div class="ck-css-styles w-embed"><style>

.ck-preference__bg {
	-webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
}

.ck-preference__scroll-w::-webkit-scrollbar {
	display: none;
} .ck-preference__scroll-w {
  -ms-overflow-style: none; 
  scrollbar-width: none; 
}

.w--redirected-focus {
	box-shadow: none!important;
}

</style></div><div fs-cc="banner" class="ck-modal" style="display: none; opacity: 0;"><a fs-cc="close" href="#" class="ck-modal__exit-btn w-inline-block" role="button" tabindex="0"><div class="ck__exitbtn__line is--left" style="background-color: rgb(81, 87, 80);"></div><div class="ck__exitbtn__line is--right" style="background-color: rgb(81, 87, 80);"></div><div class="ck-sr__only">Close Cookie Popup</div></a><div class="ck-modal__content-w is--small"><div class="ck-title is--small">Tu privacidad es importante<br></div><div class="text-block">Usamos cookies para mejorar tu experiencia y con fines de comercialización. Más información en nuestra <a href="/cookies">política de cookies</a>.<br></div></div><div class="ck-modal__btns-w is--small"><a fs-cc="allow" href="#" class="button w-inline-block" role="button" tabindex="0"><div class="ck-button__txt">Aceptar todas las cookies</div></a><a fs-cc="open-preferences" href="#" class="link-block w-inline-block" role="button" tabindex="0"><div fs-cc="open-preferences" class="text-block-6">Ajustes de cookies</div></a></div><div class="ck-attr-btn">Made by <a href="https://flinch77.com&amp;ref=cookie-cloneable" target="_blank">Flinch 77</a></div></div></div><div data-collapse="medium" data-animation="default" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="navigation-dark w-nav"><div class="navigation-container"><div class="navigation-block-left"><nav role="navigation" class="nav-menu w-nav-menu"><a href="/" class="nav-link-light w-nav-link">Home</a><a href="/consultoria" class="nav-link-light w-nav-link">Consultoría digital</a><a href="/sobre-nosotros" class="nav-link-light w-nav-link">Sobre nosotros</a><a href="/blog" class="nav-link-light w-nav-link">Blog</a></nav></div><a href="/" class="brand w-nav-brand" aria-label="home"><img src="https://uploads-ssl.webflow.com/6132572ab3d055781e46979f/6136183579ae3a54220e20eb_fluttered_logo.svg" loading="lazy" alt="" class="logo"></a><div class="navigation-right"><div class="account-buttons"><a href="/contacto" class="navigation-link-dark-signup w-button">Contacto</a><div class="weglot-container weglot-container--left" data-switcher-id="1" id="weglot-switcher-1" data-switcher-style-opt="{&quot;with_name&quot;:true,&quot;full_name&quot;:false,&quot;is_dropdown&quot;:true,&quot;with_flags&quot;:false,&quot;flag_type&quot;:&quot;shiny&quot;,&quot;custom_css&quot;:&quot;&quot;}"><aside data-wg-notranslate="true" aria-expanded="false" tabindex="0" aria-label="Language selected: Español" class="weglot_switcher wg-drop wg-mouse-click country-selector closed"><div data-l="es" class="wg-li es wgcurrent"><a tabindex="-1" target="_self" href="#" id="weglot-language-es">ES</a></div><ul role="none" style="display: none;"><li data-l="en" role="none" id="wg-en" class="wg-li en"><a role="option" href="https://en.fluttered.io/politica-de-privacidad" id="weglot-language-en">EN</a></li></ul></aside></div></div><div class="navigation-menu-dark w-nav-button" style="-webkit-user-select: text;" aria-label="menu" role="button" tabindex="0" aria-controls="w-nav-overlay-0" aria-haspopup="menu" aria-expanded="false"><div class="w-icon-nav-menu"></div></div></div></div><div class="w-nav-overlay" data-wf-ignore="" id="w-nav-overlay-0"></div></div><div class="header"><div class="container"><h1 class="heading-white">Política de privacidad</h1></div></div><div class="content-section"><div class="container-small"><div class="article w-richtext"><h3><strong>Información al usuario</strong></h3><p>FLUTTERED, S.L., como Responsable del Tratamiento, le informa que, según lo dispuesto en el Reglamento (UE) 2016/679, de 27 de abril, (RGPD) y en la L.O. 3/2018, de 5 de diciembre, de protección de datos y garantía de los derechos digitales (LOPDGDD), trataremos su datos tal y como reflejamos en la presente Política de Privacidad.</p><p>En esta Política de Privacidad describimos cómo recogemos sus datos personales y por qué los recogemos, qué hacemos con ellos, con quién los compartimos, cómo los protegemos y sus opciones en cuanto al tratamiento de sus datos personales.</p><p>Esta Política se aplica al tratamiento de sus datos personales recogidos por la empresa para la prestación de sus servicios. Si acepta las medidas de esta Política, acepta que tratemos sus datos personales como se define en esta Política.</p><h4>Contacto</h4><ul role="list"><li>Denominación social: FLUTTERED, S.L.</li><li>Nombre comercial: Fluttered</li><li>CIF: B16884983</li><li>Datos registrales: VALENCIA MERCANTIL con fecha 23/09/2021, número de inscripción 1, tomo 11052, folio 209, hoja 200445.</li><li>Domicilio: Calle Joaquín Costa 7, 3, Xirivella, Valencia, 46950</li><li>e-mail: [email protected]</li></ul><h4>Principios clave</h4><p>Siempre hemos estado comprometidos con prestar nuestros servicios con el más alto grado de calidad, lo que incluye tratar sus datos con seguridad y transparencia. Nuestros principios son:</p><ul role="list"><li><strong>Legalidad</strong>: Solo recopilaremos sus Datos personales para fines específicos, explícitos y legítimos.</li><li><strong>Minimización de datos</strong>: Limitamos la recogida de datos de carácter personal a lo que es estrictamente relevante y necesario para los fines para los que se han recopilado.</li><li><strong>Limitación de la Finalidad</strong>: Solo recogeremos sus datos personales para los fines declarados y solo según sus deseos.</li><li><strong>Precisión</strong>: Mantendremos sus datos personales exactos y actualizados.</li><li><strong>Seguridad de los Datos</strong>: Aplicamos las medidas técnicas y organizativas adecuadas y proporcionales a los riesgos para garantizar que sus datos no sufran daños, tales como divulgación o acceso no autorizado, la destrucción accidental o ilícita o su pérdida accidental o alteración y cualquier otra forma de tratamiento ilícito.</li><li><strong>Acceso y Rectificación</strong>: Disponemos de medios para que acceda o rectifique sus datos cuando lo considere oportuno.</li><li><strong>Conservación</strong>: Conservamos sus datos personales de manera legal y apropiada y solo mientras es necesario para los fines para los que se han recopilado.</li><li><strong>Las transferencias internacionales</strong>: cuando se dé el caso de que sus datos vayan a ser transferidos fuera de la UE/EEE se protegerán adecuadamente.</li><li><strong>Terceros</strong>: El acceso y transferencia de datos personales a terceros se llevan a cabo de acuerdo con las leyes y reglamentos aplicables y con las garantías contractuales adecuadas.</li><li><strong>Marketing Directo y cookies</strong>: Cumplimos con la legislación aplicable en materia de publicidad y cookies.</li></ul><h4>Recogida y tratamiento de sus datos personales</h4><p>Las tipos de datos que se pueden solicitar y tratar son:</p><ul role="list"><li>Datos de carácter identificativo.</li></ul><p>También recogemos de forma automática datos sobre su visita a nuestro sitio web &nbsp;según se describe en la política de cookies.</p><p>Siempre que solicitemos sus Datos personales, le informaremos con claridad de qué datos personales recogemos y con qué fin. En general, recogemos y tratamos sus datos personales con el propósito de:</p><ul role="list"><li>Proporcionar información, servicios, productos, información relevante y novedades en el sector.</li><li>Envío de comunicaciones.</li></ul><h4>Legitimidad</h4><p>De acuerdo con la normativa de protección de datos aplicable, sus datos personales podrán tratarse siempre que:</p><ul role="list"><li>Nos ha dado su consentimiento a los efectos del tratamiento. Por supuesto podrá retirar su consentimiento en cualquier momento.</li><li>Por requerimiento legal.</li><li>Por exisitr un interés legítimo que no se vea menoscabado por sus derechos de privacidad, como por ejemplo el envío de información comercial bien por suscripción a nuestra newsletter o por su condición de cliente.</li><li>Por se necesaria para la prestación de alguno de nuestros servicios mediante relación contractual entre usted y nosotros.</li></ul><h4>Comunicación de datos personales</h4><p>Los datos pueden ser comunicados a empresas relacionadas con FLUTTERED, S.L. para la prestación de los diversos servicios en calidad de Encargados del Tratamiento. La empresa no realizará ninguna cesión, salvo por obligación legal.</p><h4>Sus derechos</h4><p>En relación con la recogida y tratamiento de sus datos personales, puede ponerse en contacto con nosotros en cualquier momento para:</p><ul role="list"><li>Acceder a sus datos personales y a cualquier otra información indicada en el Artículo 15.1 del RGPD.</li><li>Rectificar sus datos personales que sean inexactos o estén incompletos de acuerdo con el Artículo 16 del RGPD.</li><li>Suprimir sus datos personales de acuerdo con el Artículo 17 del RGPD.</li><li>Limitar el tratamiento de sus datos personales de acuerdo con el Artículo 18 del RGPD.</li><li>Solicitar la portabilidad de sus datos de acuerdo con el Artículo 20 del <a href="https://presencialismo.com/" target="_blank">RGPD</a>.</li><li>Oponerse al tratamiento de sus datos personales de acuerdo con el artículo 21 del RGPD.</li></ul><p>Si ha otorgado su consentimiento para alguna finalidad concreta, tiene derecho a retirar el consentimiento otorgado en cualquier momento, sin que ello afecte a la licitud del tratamiento basado en el consentimiento previo a su retirada <a href="https://presencialismo.com/" target="_blank">rrhh</a>.</p><p>Puede ejercer estos derechos enviando comunicación, motivada y acreditada, a [email protected]</p><p>También tiene derecho a presentar una reclamación ante la Autoridad de control competente (<a href="https://aepd.es/" target="_blank">www.aepd.es</a>) si considera que el tratamiento no se ajusta a la normativa vigente.<br></p><h4>Información legal</h4><p>Los requisitos de esta Política complementan, y no reemplazan, cualquier otro requisito existente bajo la ley de protección de datos aplicable, que será la que prevalezca en cualquier caso.</p><p>Esta Política está sujeta a revisiones periódicas y la empresa puede modificarla en cualquier momento. Cuando esto ocurra, le avisaremos de cualquier cambio y le pediremos que vuelva a leer la versión más reciente de nuestra Política y que confirme su aceptación.</p></div></div></div><div class="footer-section-dark"><div class="container"><div class="w-layout-grid footer-grid"><div class="footer-column"><img src="https://uploads-ssl.webflow.com/6132572ab3d055781e46979f/6136183579ae3a54220e20eb_fluttered_logo.svg" loading="lazy" alt="" class="footer-logo"><div class="w-layout-grid footer-contact-detail"><div><div class="title-grey-500">Llámanos</div><h5 class="h5-title-turquoise">+34 633 75 25 75</h5></div><div><div class="title-grey-500">Envíanos un email</div><h5 class="h5-title-turquoise">[email protected]</h5></div></div></div><div class="footer-column"><div class="title-grey-500">Empieza ahora</div><a href="/consultoria" class="footer-link-white w-inline-block"><div>Consultoría</div></a><a href="https://calendly.com/d/y2j-fgs-7kd" class="footer-link-white w-inline-block"><div>Sesión gratuita</div></a></div><div class="footer-column"><div class="title-grey-500">Recursos</div><a href="/blog" class="footer-link-white w-inline-block"><div>Blog</div></a><a href="/faq" class="footer-link-white w-inline-block"><div>FAQ</div></a></div><div class="footer-column"><div class="title-grey-500">Empresa</div><a href="/sobre-nosotros" class="footer-link-white w-inline-block"><div>Sobre nosotros</div></a><a href="/contacto" class="footer-link-white w-inline-block"><div>Contacto</div></a></div></div><div class="w-layout-grid grid-2"><p id="w-node-_257c448c-bbaa-e82c-4ba6-4307456697f9-3cf1c66f" class="body-medium">© 2023 Fluttered</p><div id="w-node-_73a0c652-8675-65d3-5892-d7652319c02c-3cf1c66f" class="div-block-7"><a href="https://climate.stripe.com/ItiZEq" class="link-block-2 w-inline-block"><div class="text-block-7">Miembro de Stripe Climate</div></a><a href="https://climate.stripe.com/ItiZEq" class="link-block-2 w-inline-block"><img src="https://uploads-ssl.webflow.com/6132572ab3d055781e46979f/642ea5c9ff16c804c199f7a0_Stripe%20Climate%20Badge.svg" loading="lazy" width="36" alt=""></a></div></div><div class="footer-line-dark"></div><div class="footer-legal-bar"><div class="w-layout-grid footer-socials"><a id="w-node-_565299d1-c5ab-1158-4e14-9a853cf1c6b7-3cf1c66f" href="/cookies" class="footer-legal-link">Política de cookies</a><a href="/politica-de-privacidad" aria-current="page" class="footer-legal-link w--current">Política de privacidad</a><a href="/legal" class="footer-legal-link">Aviso legal</a></div><div class="w-layout-grid footer-socials _1-column"><a href="https://www.linkedin.com/company/fluttered/" class="w-inline-block"><img src="https://uploads-ssl.webflow.com/6132572ab3d055781e46979f/6132572bb3d055c8e54697eb_Linkedin%20Icon%20Fill.svg" loading="lazy" alt=""></a></div></div></div></div>
</body></html>

Thank you again!

from html2md.

jarontai avatar jarontai commented on June 21, 2024

I did a test using some simple spanish words, seems ok, maybe not a problem caused by special characters

import 'package:html2md/html2md.dart' as html2md;
import 'package:test/test.dart';

void main() {
  group('Github issues', () {
    late String spanishHtml;

    setUp(() {
      spanishHtml =
          '''<div>Hola, este es un texto de prueba, no sé si está bien . </div>''';
    });

    test('Github Issue 37', () {
      expect(html2md.convert(spanishHtml),
          '''Hola, este es un texto de prueba, no sé si está bien .''');
    });
  });
}

from html2md.

arturograu avatar arturograu commented on June 21, 2024

You are right. I should have tested the plain text before. It turns out that the problem is not in your library, is because I am using the http library to retrieve the HTML from an url and in the response headers is not coming the charset, so the http library is encoding the response body with the default encoding (latin1)

I'll see how I can encode the response myself or force the http library to encode it.

Thank you again!

from html2md.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.