A stray "j" ruined my evening

(napkins.mtmn.name)

31 points | by birdculture 4 days ago

5 comments

  • Cyykratahk 1 hour ago
    A stray "J" I encountered years ago: a certain client's support tickets would often end with a single "J", which was a little confusing as it was not one of their name initials. After a brief investigation, the original email source contained this:

        <font face="Wingdings">J</font>
    
    Which renders as a smiley face.
    • geerlingguy 21 minutes ago
      Seemed to be a common occurrence from Microsoft Outlook users.
    • sevenseacat 19 minutes ago
      I remember discovering this in about 2010, and thought it was hilarious
  • mike_hock 4 hours ago
    > but in ANSI newline delimiter is translated as "j"

    ?

    • gucci-on-fleek 1 hour ago
      This comes up fairly often in TeX, where you can use ^^J to insert a newline character [0]. For example, the following code:

        \message{before ^^J after}
      
      prints the following message:

        before 
        after
      
      This is common in other old software too [1] [2], but TeX is where I see it the most often these days.

      [0]: https://tex.stackexchange.com/a/64848/270600

      [1]: https://superuser.com/q/212874

      [2]: https://en.wikipedia.org/wiki/Caret_notation

    • ralferoo 4 hours ago
      \n is ^J (ctrl-J) so there's some logic there, but I wonder if something has been lost in the message. I'd guess it either displays ^J or an inverse-colour J, rather than just a plain lowercase j.

      Also possible that the j is a red herring and just some random character that's always there. Pasting a URL containing a newline into most browsers just truncates it at the newline, regardless of how much text is after. I only know this from occasionally copying links from a terminal window where the copy somehow added newlines every 80 characters (even though copying this way normally works fine). I'd have to copy the URL with newlines into a text editor, remove the new lines and copy again to be able to paste it.

      • randallsquared 2 hours ago
        Some tool or library is interpreting the newline as two characters (as you note), and then a subsequent step is removing unprintable characters. Things like this used to frequently happen in shells, Perl, PHP, and so on.
      • rgoulter 1 hour ago
        > \n is ^J (ctrl-J) so there's some logic there

        The same 'j' as vi uses for 'hjkl'. https://vi.stackexchange.com/questions/42426/why-did-vi-use-...

        • microgpt 51 minutes ago
          also the same 'j' found in words like 'jujuism', 'jejunities', and 'bejeezus', also by a magical coincidence the same one in most Latin fonts, and even some random text strings such as 'pj$4'
      • thaumasiotes 3 hours ago
        > \n is ^J (ctrl-J) so there's some logic there

        Specifically, J is the 10th letter of the alphabet and therefore ctrl-J is code for ascii 10. Same reason ctrl-D sends EOF and ctrl-I sends tab.

        • mike_hock 3 hours ago
          Yes, but piping output containing newlines into wl-copy does not result in j's in the clipboard.
    • raldi 26 minutes ago
      Yeah, I don't understand this. What broken tool is turning newlines into j?
  • meindnoch 4 hours ago
    So this is a bug in that Signal TUI he was using? I.e. it mangles newlines in pasted text.
    • neonz80 3 hours ago
      Impossible, Signal TUI is written in Rust.
      • irishcoffee 36 minutes ago
        I can’t tell if this is sarcasm or not. I chuckled either way.
  • baruchel 4 hours ago
  • benj111 4 hours ago
    I like how -j fixed the stray j problem....
    • rav 3 hours ago
      Today I learned that jq -Rrj is a shorter command line for doing the same as tr -d '\n'.
      • stouset 34 minutes ago
        IIRC you don’t even need the -r flag since -j incorporates its behavior (minus newlines).