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

    From R.Wieser@address@is.invalid to alt.comp.os.windows-11,alt.comp.os.windows-10,alt.comp.microsoft.windows on Tue Dec 16 08:29:20 2025
    From Newsgroup: alt.comp.os.windows-11

    Chris,.

    The whole point of providing open source code is so everyone improves
    it.

    No. So that anyone *can* improve on it.

    And if they believe it's worth their time.

    And they are absolutily allowed to keep such improvements to themselves.
    There is no rule, implied or otherwise, that they *have* to share.

    Regards,
    Rudy Wieser


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Steve Hayes@hayesstw@telkomsa.net to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Tue Dec 16 10:42:47 2025
    From Newsgroup: alt.comp.os.windows-11

    On Mon, 15 Dec 2025 10:07:30 +0000, "J. P. Gilliver"
    <G6JPG@255soft.uk> wrote:

    On 2025/12/15 8:56:53, R.Wieser wrote:
    Take for instance the kid who *purposely* posted HTML-ed messages, with the >> text part of it replaced with a demand we use a HTML-capable newsgroup
    readers. Quite the bit of arrogant barf (since using ES I have not seen him >> anymore. Likely ES has banned HTML posts for (text only) newsgroups like >> these ones).

    It's not just some "kid"; I've had companies that do same in emails.
    Some even just say something like "we have tried to contact you in >words-and-pictures ..." in the plain-text part. The worst are ones where >their _system_ is sending two-part emails, but the person _sending_ them
    has no idea that that's what's happening, and is unable to comprehend
    when you try to explain. That's just about tolerable when it actually
    works, but one large company (I think it was FindMyPast, a genealogy
    company) had such a system for their newsletters that was _broken_ - the >plain text part (which I was reading by default) was stuck at sending
    out the newsletter from one particular issue. I was asking them why they
    were telling me about (e. g.) special offers that only had a few days to
    run, and eventually they were telling me about them after they'd expired
    (or events after they were over); of course, the people with whom I were >corresponding had no idea, and claimed the error was at my end.

    Most HTML-only emails are spam, or designed to look like spam. I
    sometimes get emails from banks and the like formatted to look as much
    like spam as possible, so I'm perpetually having to fish them out of
    spam queues -- they use lazy HTML, and other spammers tricks like
    one-pixel codes to let them know if you've read them.

    My mail reader is setot read plain-text by default, and only to
    display HTML if there isn't a plain-text version. But it will not
    display "lazy HTML" -- ie parts of the message that are not part of
    the message, but have to be fetched from a remote web site. It just
    displays those as greyed-out blanks.

    This might annoy the whizz-kid web designers, but email is not a web
    page, and so far it has kept me safe from a lot of the malware that
    uses all those tricks.
    --
    Steve Hayes from Tshwane, South Africa
    Web: http://www.khanya.org.za/stevesig.htm
    Blog: http://khanya.wordpress.com
    E-mail - see web page, or parse: shayes at dunelm full stop org full stop uk --- Synchronet 3.21a-Linux NewsLink 1.2
  • From J. P. Gilliver@G6JPG@255soft.uk to alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows on Tue Dec 16 14:40:23 2025
    From Newsgroup: alt.comp.os.windows-11

    On 2025/12/16 8:42:47, Steve Hayes wrote:
    On Mon, 15 Dec 2025 10:07:30 +0000, "J. P. Gilliver"
    <G6JPG@255soft.uk> wrote:

    [R.Wieser original bit]

    It's not just some "kid"; I've had companies that do same in emails.
    Some even just say something like "we have tried to contact you in
    words-and-pictures ..." in the plain-text part. The worst are ones where
    their _system_ is sending two-part emails, but the person _sending_ them
    has no idea that that's what's happening, and is unable to comprehend
    when you try to explain. That's just about tolerable when it actually
    works, but one large company (I think it was FindMyPast, a genealogy
    [snip]


    Most HTML-only emails are spam, or designed to look like spam. I

    The odd spam - or, more accurately, phishing attempt - I've received
    recently have been quite well-designed; the most recent being made to
    look as if it was from DVLA (driver and vehicle licencing agency). [I
    forwarded it to the usual phishing address.]

    sometimes get emails from banks and the like formatted to look as much
    like spam as possible, so I'm perpetually having to fish them out of
    spam queues -- they use lazy HTML, and other spammers tricks like
    one-pixel codes to let them know if you've read them.

    Yes, my client - Thunderbird - doesn't fetch online contend unless I
    authorise it, which I can do per sender, per source (so it can catch
    stuff not from the sender), or per individual email. I rarely enable any
    of those. (My previous client, Turnpike, didn't I think display - or
    fetch - online content at all.)


    My mail reader is setot read plain-text by default, and only to
    display HTML if there isn't a plain-text version. But it will not

    Turnpike certainly was set that way; I think Thunderbird too.

    display "lazy HTML" -- ie parts of the message that are not part of
    the message, but have to be fetched from a remote web site. It just
    displays those as greyed-out blanks.

    Indeed. (The worst are where what would be fetched are not text, but
    images of text.)

    This might annoy the whizz-kid web designers, but email is not a web
    page, and so far it has kept me safe from a lot of the malware that
    uses all those tricks.

    Exactly. I think, these days, that (not showing it) is the default for
    most email clients, but I guess enough people use ones where that is not
    the case - or, turn it on - for it to be worth the spammers'/phishers'
    while.

    Are such things - display online content - turned on by default in most
    webmail interfaces, such as gmail? I guess most people are using those
    these days.


    --
    J. P. Gilliver. UMRA: 1960/<1985 MB++G()ALIS-Ch++(p)Ar++T+H+Sh0!:`)DNAf

    Viagra won't make you James Bond , but it will make you Roger Moore .. (@robskiing on YouTube, 2023)
    --- 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 Wed Dec 17 02:12:32 2025
    From Newsgroup: alt.comp.os.windows-11

    R.Wieser wrote:
    The whole point of providing open source code is so everyone improves
    it.

    No. So that anyone *can* improve on it.

    And if they believe it's worth their time.

    And they are absolutily allowed to keep such improvements to themselves. There is no rule, implied or otherwise, that they *have* to share.

    I appreciate all your inputs, and the inputs from Chris & others.

    The best I can do is share "my code" so that everyone can benefit.

    If anyone has a *better* way to "clean" funky text so that it's
    consistently ASCII, then please provide that solution so that everyone on
    the ng benefits from your acumen, experience, and helpful intent.

    Including me.
    Since I use that conversion process a hundred times every day.
    --- 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 Wed Dec 17 02:18:04 2025
    From Newsgroup: alt.comp.os.windows-11

    R.Wieser wrote:
    as you would need to learn something
    different when you already have something that works.

    Since I run the conversion a hundred times a day, I've scripted it to quick commands such as "Win+R > n" to bring up Notepad++.

    Then I paste the copied text from source 1 (usually using "ctrl+v").
    I do that for source 2, source 3, source 4, etc., as needed.
    Each source can use completely different character sets.

    Once I have the final copied source from a variety of inputs,
    then I select all the pasted text (usually using "ctrl+a").

    Then I run the macro (which is defined as "ctrl+b").

    Now everything is cleaned up.
    A quick "ctrl+x" pulls it out of Notepad++ for pasting into the final
    editing tool (which could be a script to run in Windows, for example).

    Batch scripts hate curly quotes, for example.
    --- 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 17 02:20:10 2025
    From Newsgroup: alt.comp.os.windows-11

    Chris wrote:
    That way everyone benefits by you providing an even better way to do it.

    Carlos in a different ng has the solution for you: don't fuck around with
    ng post headers and leave everything as UTF-8. It isn't 1993.

    I profess openly that I never understood charsets, but is that going to
    work for Windows batch scripts which, in my experience, hate curly quotes.
    --- 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 17 02:25:07 2025
    From Newsgroup: alt.comp.os.windows-11

    R.Wieser wrote:
    "a metal firecracker" -> "a mental firecracker" Though the first one is also true. :-D

    I copy and paste from a variety of sources all day, every day, whether I'm writing batch scripts or a Usenet post or a web page reference, etc.

    It's crazy to have all sorts of hidden characters in some chunks, and curly quotes in others, em dashes still in others, mixed in with regular dashes.

    My solution is simply to paste into Notepad++ from that variety of original sources, and before editing, I convert all the hidden stuff like
    non-breaking hyphens and zero-width spaces to simple plain keyboard ASCII.

    Then I edit in my $EDITOR of choice, which happens to be gVim on Windows.

    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, help all of us by explaining what solution you found that's
    better.

    I, for one, would love to know your solution which is better'n mine.
    --- 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 17 02:26:48 2025
    From Newsgroup: alt.comp.os.windows-11

    R.Wieser wrote:
    You seem to have understood Notepad++ isn't being used 'as' an editor.
    It's being used to convert 'messy' text to the 95 keyboard characters.

    You're just continuing your accusation, still without showing anything to support it.

    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, help all of us by explaining what solution you found that's
    better.

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

    --- 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 Wed Dec 17 13:10:54 2025
    From Newsgroup: alt.comp.os.windows-11

    Arlen,

    I appreciate all your inputs, and the inputs from Chris & others.

    The best I can do is share "my code" so that everyone can benefit.

    My input ? Looking at your current work and remembering your "turorials" of the past I would suggest *not* to share.

    As long as you can't be arsed to put even just a few hours worth of work
    into cleaning up your stuff and googeling if your "facts" match the
    available documentation you should keep those "tutorials" to yourself.

    As said before, you're not doing the novices - for which you claim to write for and which depend on your information to be correct - any favours. Quite the opposite actually.

    If anyone has a *better* way to "clean" funky text

    I already did. Use a bit of (VB)Script, or use one of the available a
    "stream editors".

    But hey, doing as if nobody has tried to help you (and likely just waiting until someone hands you what you need on a silver platter) is easier than doing your own work.

    In that regard, you're writing those two words wrong : Its not "we" and "team", but "wie" and "teiam". Yes, I know that they always say that there is no "i" in them, but you prove them wrong every time. :-) :-(

    Including me.
    Since I use that conversion process a hundred times every day.

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

    Ah, I remember once having applied basic calculus to that one, pointing out that if you would have churned out one tutorial every week you would have needed 1000'nts divided by 52 equals a multiple of 20 years.

    Just 2500 tutorials ? That would have taken *your whole working life*.

    And by the way : your reverting of what those six macro lines mean away from what I gave you back to what you had initially guessed yourself instead of trying to google if mine where perhaps correct (or hell, maybe you did!) is the likely the highest level of pettyness you can reach.

    But who cares, your ego takes precedence on providing novices (us) with
    facts, right ? Ofcourse it does. :-(

    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 Wed Dec 17 14:40:31 2025
    From Newsgroup: alt.comp.os.windows-11

    Arlen,

    as you would need to learn something
    different when you already have something that works.

    Since I run the conversion a hundred times a day, I've scripted it to
    quick
    commands such as "Win+R > n" to bring up Notepad++.

    Good for you.

    Me myself ? I just click a script, and it works on all the (html) files in the folder. Easy, peasy.

    I want to convert one or more specific files ? Just drag-and-drop them
    onto the script and the magic happens.

    And if one of those files turns out to be converted wrongly ? I than can either just copy the auto-backupped origional file back (by drag-and-drop),
    or change the script and run it again - which than automatically uses the origional text from the backup as its source. Again, easy peasy.

    I want to convert a snippet of text ? I copy the text into the clipboard, click a script and than paste the converted text back or where I want it.

    Did I already mention that I like the freedom (flexibility) VBScript offers
    me ? well, I do. :-)


    Kid, you said you have been using npp for years now. I would be bored and
    as such irritated as hell by having to do the same thing (copy the text,
    paste text into npp, start the macro, copy the text from npp, paste the text back) over-and-over-and-over again - according to your own claim, a hundred times a day.

    Heck, even if I would only have needed to do something like that just once a week I would spend some time trying to automate it. Even though I like VBScript, I know of a program (I tried it out) which can record and than re-play keystokes and mouse-movements. I don't like it myself, but hey, maybe you would.

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

    Batch scripts hate curly quotes, for example.

    Batch scripts hate a lot of characters. It was never build as a text manipulating language, and it shows.

    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 Wed Dec 17 15:07:07 2025
    From Newsgroup: alt.comp.os.windows-11

    Arlen,

    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.

    help all of us by explaining what solution you found that's better.

    Kid, you have just told me that you want to simplify *your* "use the
    Notepad++ macro a hundred times a day", but somehow that is ment for "help
    all of us" ? You're *so damn transparent* that its not even funny anymore.

    Kid, I told you I use VBScript. I also mentioned "stream editors" Go fire up your internet-browser and start googeling.

    iow : no, I'm not going to offer you your solution and/or next tutorial on a silver platter.

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

    I would love to see that you would try to make sure that what you write is based of facts instead of guesswork. Better yet, that you re-read your
    own stuff back while imagining you have the knowledge of a novice. I guess
    we both will have to be disappointed.

    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 Wed Dec 17 15:09:05 2025
    From Newsgroup: alt.comp.os.windows-11

    Arlen,

    You seem to have understood Notepad++ isn't being used 'as' an editor.
    It's being used to convert 'messy' text to the 95 keyboard characters.

    You're just continuing your accusation, still without showing anything to >> support it.

    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, help all of us by explaining what solution you found that's
    better.

    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.

    Ignored.

    Regards,
    Rudy Wieser


    --- 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 10:56:39 2025
    From Newsgroup: alt.comp.os.windows-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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-11

    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