• Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters

    From Marian@marianjones@helpfulpeople.com to alt.comp.os.windows-11,alt.comp.os.windows-10,alt.comp.microsoft.windows on Mon Dec 22 10:56:39 2025
    From Newsgroup: alt.comp.os.windows-10

    R.Wieser wrote:
    Since I use that conversion process a hundred times every day.

    Bullshit, just like your "thousands of tutorials" claim you made.

    I used to write tutorials for a well-known Silicon Valley company.

    But moving forward, here's the latest revision of shortcuts.xml.
    (It fixes a bug in the non-breaking-hyphen substitution code.)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- C:\app\editor\txt\Notepad++\shortcuts.xml -->
    <!-- Notepad++ shortcuts.xml version 1p3 20251214 -->
    <!-- Use model: ctrl+a (select all), ctrl+b (convert selected set) -->
    <!-- Macro engine command meanings:
    1700 = begin a new search/replace operation
    1601 = set the search string (the Unicode character to find)
    1625 = clear the replacement buffer
    1602 = set the replacement string (ASCII equivalent)
    1702 = execute Replace All
    1701 = end this search/replace block


    <NotepadPlus>
    <InternalCommands>
    <Shortcut id="43009" Ctrl="no" Alt="no" Shift="no" Key="0" />
    </InternalCommands>
    <Macros>
    <Macro name="ASCII" Ctrl="yes" Alt="no" Shift="no" Key="66">

    <!-- Replace U+2010 (HYPHEN) with ASCII "-" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2010;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2011 (NON-BREAKING HYPHEN) with ASCII hyphen "-" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2011;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+0001 (SOH control character) with nothing -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0001;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2012 (FIGURE DASH) with ASCII "-" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2012;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2212 (MINUS SIGN) with ASCII "-" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2212;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+200C (ZERO WIDTH NON-JOINER) with "" (nothing) -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200C;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+200B (ZERO WIDTH SPACE) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200B;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+200D (ZERO WIDTH JOINER) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200D;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2060 (WORD JOINER) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2060;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+FEFF (BOM) with ASCII apostrophe "'" (strips BOM) -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xFEFF;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+00A0 (NO-BREAK SPACE) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A0;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2007 (FIGURE SPACE) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2007;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+202F (NARROW NO-BREAK SPACE) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x202F;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+0F0C (TIBETAN MARK DELIMITER) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0F0C;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2018 (LEFT SINGLE QUOTE) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2018;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2019 (RIGHT SINGLE QUOTATION) with ASCII apostrophe "'" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2019;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2032 (PRIME) with ASCII apostrophe -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2032;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+02BC (MODIFIER LETTER APOSTROPHE) with ASCII apostrophe -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02BC;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+201C (LEFT DOUBLE QUOTE) with ASCII double quote " -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201C;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam='&quot;' />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+201D (RIGHT DOUBLE QUOTE) with ASCII double quote -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201D;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam='&quot;' />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2026 (HORIZONTAL ELLIPSIS) with ASCII "..." -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2026;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="..." />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace literal &#151; (HTML entity for EM DASH) with ASCII "-" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&amp;#151;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2014 (EM DASH) with ASCII "-" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2014;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2013 (EN DASH) with ASCII "-" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2013;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace literal &zwnj; (ZERO WIDTH NON-JOINER entity) with ASCII "-" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&zwnj;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2022 (BULLET) with ASCII "*" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2022;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&#x002A;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+8722 (MATHEMATICAL MINUS variant) with ASCII "&" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x8722;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&amp;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+011F (LATIN SMALL G WITH BREVE) with ASCII "g" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x11f;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="g" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2009 (THIN SPACE) with ASCII space -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#8201;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+00E1 (LATIN SMALL A WITH ACUTE) with ASCII "a" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xe1;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="a" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+0161 (LATIN SMALL S WITH CARON) with ASCII "s" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x161;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="s" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+011B (LATIN SMALL E WITH CARON) with ASCII "e" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x11b;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="e" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2713 (CHECK MARK) with ASCII space -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2713;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace ASCII hyphen "-" with ASCII hyphen "-" (normalize) -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace backtick with ASCII single quote -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="`" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace Unicode Arrow (U+2192) with ASCII dash greaterthan -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2192;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="->" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace degree symbol with deg -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00B0;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="deg" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace copyright symbol U??? with (C) -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A9;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="(C)" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace Trademark (U+2122) with (TM) -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2122;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="(TM)" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace Registered (U+00AE) with (R) -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AE;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="(R)" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+00AD (SOFT HYPHEN) with "" (remove completely) -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AD;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2061 (FUNCTION APPLICATION) with "" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2061;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2062 (INVISIBLE TIMES) with "" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2062;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2063 (INVISIBLE SEPARATOR) with "" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2063;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2064 (INVISIBLE PLUS) with "" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2064;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+180E (MONGOLIAN VOWEL SEPARATOR) with "" -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x180E;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+200A (HAIR SPACE) with ASCII space -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200A;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2008 (PUNCTUATION SPACE) with ASCII space -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2008;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2006 (SIX-PER-EM SPACE) with ASCII space -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2006;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2028 (LINE SEPARATOR) with ASCII newline -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2028;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+2029 (PARAGRAPH SEPARATOR) with ASCII newline -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2029;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    <!-- Replace U+0085 (NEXT LINE / NEL) with ASCII newline -->
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0085;" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

    </Macro>
    </Macros>
    <UserDefinedCommands>
    <Command name="Get PHP help" Ctrl="no" Alt="yes" Shift="no" Key="112">https://www.php.net/$(CURRENT_WORD)</Command>
    <Command name="Wikipedia Search" Ctrl="no" Alt="yes" Shift="no" Key="114">https://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)</Command>
    <Command name="Open file in another instance" Ctrl="no" Alt="yes" Shift="no" Key="117">$(NPP_FULL_FILE_PATH) $(CURRENT_WORD) -nosession -multiInst</Command>
    </UserDefinedCommands>
    <PluginCommands />
    <ScintillaKeys />
    </NotepadPlus>
    --
    I respond as an adult to anyone as long as they act like an adult.
    My goal is to help people & to learn more from those people I help.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Marian@marianjones@helpfulpeople.com to alt.comp.os.windows-11,alt.comp.os.windows-10,alt.comp.microsoft.windows on Mon Dec 22 11:01:06 2025
    From Newsgroup: alt.comp.os.windows-10

    R.Wieser wrote:
    You think you can use such a program ? Than you only have to google for it.

    Well, I wrote the shortcuts.xml tutorial so that anyone on Windows can use Notepad++ as a conversion tool to convert common "funky" text to keyboard ASCII.

    This is useful in situations where we copy./edit text from a variety of
    sources and we want the punctuation & control characters to be consistent.

    I've been on Usenet long enough to know that it's the only tool ever
    mentioned on this newsgroup for the task, so it adds immense unique value.

    If someone knew of a better tool, they would have mentioned it by now.
    So, by that definition, it's the best this newsgroup has ever known.

    That's called adding value, Rudy.
    --
    Never make the mistake of thinking I'm anything like the average poster.
    I am not here for my ego; nor for my amusement; but to teach & learn.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From R.Wieser@address@is.invalid to alt.comp.os.windows-11,alt.comp.os.windows-10,alt.comp.microsoft.windows on Mon Dec 22 19:50:52 2025
    From Newsgroup: alt.comp.os.windows-10

    Arlen,

    Bullshit, just like your "thousands of tutorials" claim you made.

    I used to write tutorials for a well-known Silicon Valley company.

    Kiddo, you have claimed *so many facts* that you could not support with evidence that I can't believe this claim either.

    Besides, you *again* missed the point : 2500 tutorials would take you 50
    years - *IF* you would be able to churn out on a week, *every* week.

    And knowing that research takes time (guess how I know) I don't believe for
    a second you could do that.

    But moving forward, here's the latest revision of shortcuts.xml.

    [snip]

    Actually, you have already shown us proof that you are unable to churn out a tutorial a week with your current subject : you started at december 11, its now december 22, and you're not near being finished. For one, you still
    have to repleace your guesses to what those macro commands mean with researched facts.

    Regards,
    Rudy Wieser


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From R.Wieser@address@is.invalid to alt.comp.os.windows-11,alt.comp.os.windows-10,alt.comp.microsoft.windows on Mon Dec 22 20:25:31 2025
    From Newsgroup: alt.comp.os.windows-10

    Arlen,

    You think you can use such a program ? Than you only have to google for
    it.

    Well, I wrote the shortcuts.xml tutorial so that anyone on Windows can use Notepad++ as a conversion tool to convert common "funky" text to keyboard ASCII.

    No, you didn't write a tutorial.

    But hey, keep claiming it, maybe your posts will magically change themselves to make your claim come true. Happy dreams.

    And no, its not a tool either. Just an editor in which you still have load the file, start that macro and than save the file again. I've not seen you post anything about automating that process, even though I already strongly hinted (told you) that there are programs which can help you with it.

    You know what the sad thing is ? If I could rather quickly find what those macro commands actually mean than so can others. But for some strange reason, even after a week-and-a-half, you, still can't*. Make a guess to
    what that will make those others think.

    * or are simply refusing to do so ofcourse. Which is even worse.

    You know what is equally as sad ?

    That I currently likely have more knowledge about how npp works than you do. Nonwithstanding that you have been using it, by your own claim, for over six years and I only looked at it for a bit of time in the past week-and-a-half.

    Regards,
    Rudy Wieser


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From R.Wieser@address@is.invalid to alt.comp.os.windows-11,alt.comp.os.windows-10,alt.comp.microsoft.windows on Mon Dec 22 21:21:51 2025
    From Newsgroup: alt.comp.os.windows-10

    Arlen,

    Bullshit, just like your "thousands of tutorials" claim you made.

    I used to write tutorials for a well-known Silicon Valley company.

    And I totally forgot to mention the obvious : Looking at the "tutorials" you have been posting here in the past years - including the current one - there is *absolutily no chance* that you have *ever* actually written one. Commercially or not.

    Thoug I have to say that, even though your current "tutorial" doesn't even come near to being one, its a *lot* better than the ones you posted us a few years ago. At least now you kept yourself to a single subject. iow, you /do/ seem to be able to learn. Even if its on a glacial speed.

    Regards,
    Rudy Wieser


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Marian@marianjones@helpfulpeople.com to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Mon Dec 22 21:09:30 2025
    From Newsgroup: alt.comp.os.windows-10

    R.Wieser wrote:
    Since I combine various source references a hundred times a day, I use the >> Notepad++ macro a hundred times a day - so - if you have a *better*
    solution,

    As I already mentioned, "better" is relative.

    What exactly is your suggested solution?
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Marian@marianjones@helpfulpeople.com to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Mon Dec 22 21:10:29 2025
    From Newsgroup: alt.comp.os.windows-10

    R.Wieser wrote:
    I, for one, would love to know your solution which is better'n mine is.

    A "responce" that has got zero to do with the subject of what you quoted.

    If you have a better solution, tell us all what it is.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From R.Wieser@address@is.invalid to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Tue Dec 23 07:47:34 2025
    From Newsgroup: alt.comp.os.windows-10

    Arlen,

    As I already mentioned, "better" is relative.

    What exactly is your suggested solution?

    "The definition of insanity is trying the same thing over-and-over, but expecting different results."

    Regards,
    Rudy Wieser


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From R.Wieser@address@is.invalid to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Tue Dec 23 08:03:06 2025
    From Newsgroup: alt.comp.os.windows-10

    Arlen,

    If you have a better solution, tell us all what it is.

    Thats not needed : "us all" know how to use google, and will have no problem with spending some time figuring stuff out.

    You on the other hand have-and-still refuse to do any such thing. Which cannot be rewarded.

    Regards,
    Rudy Wieser


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Marian@marianjones@helpfulpeople.com to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Wed Dec 31 01:33:28 2025
    From Newsgroup: alt.comp.os.windows-10

    Marian wrote:
    Tutorial:
    Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters

    While this thread is about using Notepad++ to "selectively" convert
    any given funky character to any other given ASCII character,
    another way to convert Unicode to ASCII could be the following scripts.

    type unicode.txt
    This line is fine.
    This line has a sneaky Unicode dash + right here.
    This line has curly quotes rlike these%.
    This line has a non-breaking space between words.

    type unicode2ascii.bat
    @echo off
    :: unicode2ascii.bat
    :: This batch file runs a PowerShell script that removes all non-ASCII
    :: characters from unicode.txt and writes the cleaned output to ascii.txt. powershell -NoProfile -ExecutionPolicy Bypass -File unicode2ascii.ps1

    type unicode2ascii.ps1
    # unicode2ascii.ps1
    # This script reads unicode.txt, removes all characters outside the
    # 7-bit ASCII range (0x00 to 0x7F), and writes the result to ascii.txt.

    Get-Content unicode.txt | ForEach-Object {
    ($_ -replace '[^\x00-\x7F]', '')
    } | Set-Content ascii.txt

    type ascii.txt
    This line is fine.
    This line has a sneaky Unicode dash right here.
    This line has curly quotes like these.
    This line has a non-breaking space between words.
    --
    Just paying it forward with clear steps & free tools made simple.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Herbert Kleebauer@klee@unibwm.de to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Wed Dec 31 13:21:16 2025
    From Newsgroup: alt.comp.os.windows-10

    On 12/31/2025 9:33 AM, Marian wrote:

    This line has a sneaky Unicode dash N++ right here.
    This line has curly quotes N++like theseN++.
    This line has a non-breaking space between words.

    In Thunderbird this didn't arrive as valid uTF-8 code.

    "dash N++ right" in hex:

    64 61 73 68 roe 20 FB 20 72 roe 69 67 68 74

    FB is the starting byte of a 4 byte utf-8 code, but the
    3 remaining bytes are missing.


    type unicode2ascii.bat
    @echo off
    :: unicode2ascii.bat
    :: This batch file runs a PowerShell script that removes all non-ASCII
    :: characters from unicode.txt and writes the cleaned output to ascii.txt. powershell -NoProfile -ExecutionPolicy Bypass -File unicode2ascii.ps1

    Wouldn't it be simpler to open the file in Notepad and save it with
    ANSI encoding instead of UTF-8?
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Marian@marianjones@helpfulpeople.com to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Wed Dec 31 11:21:22 2025
    From Newsgroup: alt.comp.os.windows-10

    Herbert Kleebauer wrote:
    On 12/31/2025 9:33 AM, Marian wrote:

    This line has a sneaky Unicode dash N++ right here.
    This line has curly quotes N++like theseN++.
    This line has a non-breaking space between words.

    In Thunderbird this didn't arrive as valid uTF-8 code.

    "dash N++ right" in hex:

    64 61 73 68 roe 20 FB 20 72 roe 69 67 68 74

    FB is the starting byte of a 4 byte utf-8 code, but the
    3 remaining bytes are missing.

    Hi Herbert,

    Happy New Year!

    Thank you for that information. I only find out after I've posted.
    I don't "see" most of the tofu, but as you can tell, it was there.

    It happens when I don't always remember to convert Unicode to ASCII.
    Here is the original test file that contains the Unicode characters.

    This line is fine.
    This line has a sneaky Unicode dash rCo right here.
    This line has curly quotes rCLlike theserCY.
    This line has a non-breaking space between words.

    Bear in mind there is much more than just Unicode characters in
    pasted web-page text as Unicode is only the container; the real trouble
    comes from the variety of characters inside it such as zero-width
    spaces & joiners, directional control characters, soft hyphens, etc.

    I sent that exactly as it was copied & pasted from gVim.
    My Usenet "reader" is a bunch of telnet scripts tied to gVim.

    Whatever is in the header is random from a dictionary lookup.
    So whatever character encoding is in the header is static.

    This is why I try to run all the web page comments (which contain funky characters) through a conversion to ASCII prior to posting.

    Here's that same file after being run through this sequence.
    type unicode2ascii.bat
    @echo off
    :: unicode2ascii.bat
    :: This batch file runs a PowerShell script that removes all non-ASCII
    :: characters from unicode.txt and writes the cleaned output to ascii.txt. powershell -NoProfile -ExecutionPolicy Bypass -File unicode2ascii.ps1

    type unicode2ascii.ps1
    # unicode2ascii.ps1
    # This script reads unicode.txt, removes all characters outside the
    # 7-bit ASCII range (0x00 to 0x7F), and writes the result to ascii.txt.

    Get-Content unicode.txt | ForEach-Object {
    ($_ -replace '[^\x00-\x7F]', '')
    } | Set-Content ascii.txt

    type ascii.txt
    This line is fine.
    This line has a sneaky Unicode dash right here.
    This line has curly quotes like these.
    This line has a non-breaking space between words.

    type unicode2ascii.bat
    @echo off
    :: unicode2ascii.bat
    :: This batch file runs a PowerShell script that removes all non-ASCII
    :: characters from unicode.txt and writes the cleaned output to ascii.txt.
    powershell -NoProfile -ExecutionPolicy Bypass -File unicode2ascii.ps1

    Wouldn't it be simpler to open the file in Notepad and save it with
    ANSI encoding instead of UTF-8?

    My use model is to research the bejeezus out of my Usenet posts, so they
    very often contain funky characters of all sorts due to copy/paste/edit.

    I simply need a quick converter of the pasted text to keyboard ASCII.
    This notepad conversion started years ago with a few funky characters. Shortcuts.xml grew over time into the behemoth that it currently is.

    Nonetheless, "simpler" and "faster" need to go together.
    Currently the process is:

    a. Paste results from multiple web sources into a gvim file
    b. Convert to ascii in Notepad++ using ctrl+A & ctrl+B
    c. Edit converted results to the final Usenet post content

    It's just a couple of quick keyboard combinations.
    ctrl+c (to copy the referenced web page text)
    Runbox > n (to bring up Notepad)
    ctrl+v (to paste the copied funky text to Notepad++)
    ctrl+b (to convert the funky text to ascii characters)
    ctrl+a (to copy the converted ascii)
    ctrl+v (to paste into gVim for the final edits)
    ctrl+s (to send off the Usenet post).

    I do it a hundred times a day, all day, every day, so the keystroke
    sequence is efficient but I'm always open to a better simpler method.

    The first thing I had tried, years ago, was to do it inside of gVim.
    :%s/[^[:ascii:]]//g
    Mapped to the F5 key, that turned into this, which partially works.
    nnoremap <F5> :%s/[^[:ascii:]]//g<CR>

    But that will simply "remove" the unwanted funky characters.
    I need to map them to individual ascii replacements.

    Of course, gVim can map a specific character to another character:
    nnoremap <F6> :silent %s/[xy]/"/ge | %s/[nm]/'/ge | %s/[ab]/-/ge<CR>
    where for this post
    x = open curly doublequote
    y = close curly doubleqhote
    n = open quote
    m = closed curly quote
    a = em dash
    b = en dash
    But that turns into yet another "shortcuts.xml" complex conversion set
    as I run into all sorts of funky unicode characters (such as nbspace).

    Taking your suggestion to heart, I could, I guess, call my powershell conversion script from within gVim, which I hadn't been doing ('cuz I
    wasn't running the powershell script - it was just a test vehicle).
    :!powershell -File unicode2ascii.ps1
    :e ascii.txt
    :e ascii.txt

    I could also run some sort of filter out of gVim to Powershell too.
    :%!powershell -command "(Get-Content -Raw) -replace '[^\x00-\x7F]', ''" Mapped, perhaps, to the F7 key for single-stroke keyboard efficiency.
    noremap <F7> :% !powershell -command "(Get-Content -Raw) -replace '[^\x00-\x7F]', ''"<CR>

    If I were on Linux, I'd use the existing converter tools such as
    iconv -f UTF-8 -t ASCII//TRANSLIT input.txt > output.txt
    uconv -f utf-8 -t ascii --transliterate input.txt > output.txt

    Looking it up, I can also
    $txt = Get-Content unicode.txt -Raw $norm = $txt.Normalize([Text.NormalizationForm]::FormKD) $ascii = -join ($norm.ToCharArray() | Where-Object { [int]$_ -lt 128 }) $ascii | Set-Content ascii.txt

    And, looking it up s'more, I see python has a conversion tool also.
    pip install unidecode
    from unidecode import unidecode
    print(unidecode(open("unicode.txt").read()))

    It's such a common need there are lots of solutions.
    Which is the simplest?
    --
    Just paying it forward with clear steps & free tools made simple.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Herbert Kleebauer@klee@unibwm.de to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Wed Dec 31 20:47:38 2025
    From Newsgroup: alt.comp.os.windows-10

    On 12/31/2025 7:21 PM, Marian wrote:

    Bear in mind there is much more than just Unicode characters in
    pasted web-page text as Unicode is only the container; the real trouble
    comes from the variety of characters inside it such as zero-width
    spaces & joiners, directional control characters, soft hyphens, etc.

    I don't understand the problem. In these days, (nearly) any web page
    and usnet posting uses utf-8 character encoding. Also your posting
    uses utf-8;

    Content-Type: text/plain; charset=UTF-8; format=flowed
    User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (CYGWIN_NT-10.0-WOW/2.8.0(0.309/5/3) (i686)) Hamster/2.0.2.2


    There shouldn't be any problem when you copy text from a web page and
    past it into an usnet posting. There is only a problem if you
    convert the utf-8 text into "something else" and then paste it
    into the posting. You don't solve a problem, you create a problem.


    Just post a link to a web page which has a problem with copy&paste
    text into an usnet posting.




    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Chris@ithinkiam@gmail.com to alt.comp.os.windows-11,alt.comp.os.windows-10,alt.comp.microsoft.windows on Fri Jan 2 11:44:02 2026
    From Newsgroup: alt.comp.os.windows-10

    Herbert Kleebauer <klee@unibwm.de> wrote:
    On 12/31/2025 7:21 PM, Marian wrote:

    Bear in mind there is much more than just Unicode characters in
    pasted web-page text as Unicode is only the container; the real trouble
    comes from the variety of characters inside it such as zero-width
    spaces & joiners, directional control characters, soft hyphens, etc.

    I don't understand the problem. In these days, (nearly) any web page
    and usnet posting uses utf-8 character encoding. Also your posting
    uses utf-8;

    Content-Type: text/plain; charset=UTF-8; format=flowed
    User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (CYGWIN_NT-10.0-WOW/2.8.0(0.309/5/3) (i686)) Hamster/2.0.2.2


    There shouldn't be any problem when you copy text from a web page and
    past it into an usnet posting. There is only a problem if you
    convert the utf-8 text into "something else" and then paste it
    into the posting. You don't solve a problem, you create a problem.

    100% accurate. This is Donald's MO.


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Frank Slootweg@this@ddress.is.invalid to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Sat Jan 3 13:07:46 2026
    From Newsgroup: alt.comp.os.windows-10

    Herbert Kleebauer <klee@unibwm.de> wrote:
    On 12/31/2025 7:21 PM, Marian wrote:

    Bear in mind there is much more than just Unicode characters in
    pasted web-page text as Unicode is only the container; the real trouble comes from the variety of characters inside it such as zero-width
    spaces & joiners, directional control characters, soft hyphens, etc.

    I don't understand the problem. In these days, (nearly) any web page
    and usnet posting uses utf-8 character encoding. Also your posting
    uses utf-8;

    Content-Type: text/plain; charset=UTF-8; format=flowed
    User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (CYGWIN_NT-10.0-WOW/2.8.0(0.309/5/3) (i686)) Hamster/2.0.2.2

    I don't know whether or not he used UTF-8, but, as with all his
    postings, these headers are fabricated/bogus.

    For example the 'User-Agent:' header is stolen from my postings
    (extremely unlikely that anyone else has that exact combination of newsreader/local server). And I normally don't use any 'Content-Type:'
    header and if I do, it's not UTF-8, nor format=flowed, so that header is fabricated/ bogus as well.

    He claims you're partly responsible for him generating this crap :-) :

    Message-ID: <10j7auc$mji$1@nnrp.usenet.blueworldhosting.com>

    There shouldn't be any problem when you copy text from a web page and
    past it into an usnet posting. There is only a problem if you
    convert the utf-8 text into "something else" and then paste it
    into the posting. You don't solve a problem, you create a problem.

    Creating problems is his purpose in life.

    Just post a link to a web page which has a problem with copy&paste
    text into an usnet posting.

    Don't hold your breath.
    --- Synchronet 3.21a-Linux NewsLink 1.2