[pro] write-char vs. 8-bit bytes
Bob Cassels
bobcassels at netscape.net
Fri Apr 11 11:41:19 UTC 2014
Yes. From the original description, this is a binary operation, not a character operation.
On Apr 10, 2014 10:45 PM, raito at raito.com wrote:
>
> I end up doing something like:
>
> (defmacro with-open-binary-file (args &rest rest)
> `(with-open-file (, at args :element-type '(unsigned-byte 8)) , at rest))
>
> (defun write-word (word out)
> (write-byte (ldb (byte 8 8) word) out)
> (write-byte (ldb (byte 8 0) word) out))
>
> only because I'm exclusively writing binary stuff to the files this code
> serves, and because it parallels the C code that does the same thing
> fairly well. I'm not writing to a socket stream, but this may help anyway.
> It might need to account for endianness, but I'm not sure. It's been a
> while since I've looked at it closely.
>
> Neil Gilmore
> raito at raito.com
>
> > I can't easily verify right now, but check the :external-format on your
> > stream: it may be defaulting to UTF-8 and you will need to specify
> > something else.
> >
> > -tree
> >
> > Sent from my iPhone
> >
> >> On Apr 10, 2014, at 10:31, Paul Tarvydas <paultarvydas at gmail.com> wrote:
> >>
> >> I'm using sbcl to write-char a 16-bit unsigned integer to a socket as
> >> two separate unsigned 8-bit bytes, for example 141 should appear as
> >>
> >> #x00 #x8d.
> >>
> >> SBCL appears to convert the #x8d into a two-byte utf-8 char, resulting
> >> in 3 bytes written to the stream
> >>
> >> \#x00 #xcd #x8d.
> >>
> >> What is the proper incantation to achieve this? (SBCL on Windows, if
> >> that matters).
> >>
> >> thanks
> >> pt
> >>
> >>
> >> _______________________________________________
> >> pro mailing list
> >> pro at common-lisp.net
> >> http://common-lisp.net/cgi-bin/mailman/listinfo/pro
> >
> > _______________________________________________
> > pro mailing list
> > pro at common-lisp.net
> > http://common-lisp.net/cgi-bin/mailman/listinfo/pro
> >
>
>
>
> _______________________________________________
> pro mailing list
> pro at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/pro
More information about the pro
mailing list