http://www.perlmonks.org?node_id=347315


in reply to Re: Apocalypse 12
in thread Apocalypse 12

It is an ASCII character, so there should be no problems with cross-platform compatibility. It's the "right-pointing double angle quotation mark," character code 0xBB. Which means type 0187 on your numeric keypad while holding ALT.


---
640k is enough for anybody.

Replies are listed 'Best First'.
Re: Apocalypse 12
by Abigail-II (Bishop) on Apr 22, 2004 at 13:24 UTC
    There are only 128 ASCII characters, of which the first 32 and the last one are non-printable. The ASCII characters range from chr 0x00 to chr 0x7F. That does not include chr 0xBB. A right pointed double angle quotation mark, on code point 0xBB is included in the ISO 8859-1 font set (and possibly other ISO 8859-x font sets), but as such, there are cross-platform compatibility issues.

    Heck, there are even cross-platform compatibility issues if you stick to ASCII. Not all the world is ASCII.

    Abigail

      Heck, there are even cross-platform compatibility issues if you stick to ASCII. Not all the world is ASCII.

      Enough of the computer world supports ASCII that it's reasonable to use any printable character from the ASCII set. Platforms that don't use ASCII natively should have translation utilities for it by now, surely. Now, if you write code that changes case by adding and subtracting or similar schenanighans, then of course that's another matter, but just using a printable ASCII character is a fairly portable thing. (By "printable", I mean from decimal 32 up through decimal 126. The control characters are more likely causes of trouble.)


      ;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}} split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print
Re^2: Re: Apocalypse 12
by adrianh (Chancellor) on Apr 22, 2004 at 13:30 UTC
    It is an ASCII character

    <nitpick>

    It definitely isn't an ASCII character. ASCII is only seven bits wide, and never included none o'them wierd "foreign" characters :-).

    You will however find it in ISO 8859 (aka ISO Latin 1).

    </nitpick>

      \begin{pedantic}
      ASCII isn't necessarely 7 bits wide. There are 128 different characters, so you could encode them using just 7 bits. But that's pretty unusual, especially nowadays, given that bytes are typically 8 bits wide. Common ways of encoding ASCII characters use bytes, with either the high bit being 0, or by using one of the bits as a parity bit - to be able to do some error detection.

      Also, ISO 8859 is a class of character sets, all supersets of ASCII, having the code points 0x80 - 0x9F undefined and the highest code point being 0xFF. But there are various mappings of the code points 0xA0 - 0XFF to characters; one of those mappings (for Western European languages) being ISO 8859-1, and only that one is known as ISO Latin-1. It's in many countries that used ISO 8859-1 superceeded by ISO 8859-15, which includes a € sign. But there are other mappings part of ISO 8859 as well.
      \end{pedantic}

      Abigail

        Fair points ;-)

      Well, it is included in the extended ASCII table, though I don't know what that means internationally. The 'A' in ASCII does mean American, after all.

      ---
      640k is enough for anybody.
        Well, it is included in the extended ASCII table

        I looked through my table of IBM Extended ASCII, and didn't find it. Decimal 187 is one of the framing characters (for drawing character-based screen windows and stuff), specifically the double-line upper-right-corner. (I used to use the framing characters all the time, mostly in comments and documentation, but also for character-based window borders and things, back in the DOS days.) I've never seen this double-greater-than-sign character before in my life, as far as I know. Hopefully I won't need parallel dispatch for very much, because I really like my Avant Stellar keyboard and have no intentions of switching to a European keyboard or whatever is needed to type unicode characters.

        I don't mind if the language _supports_ unicode; I think it's wrong to *require* it though.


        ;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}} split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print
        Well, it is included in the extended ASCII table

        The problem is that it's "an" extended ASCII table - not "the" extended ASCII table :-) There are many extensions of ASCII, many of which do not have "" and "".