<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
  <meta name="Generator" content="Zarafa WebAccess v6.20.4-14107">
  <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
  <title>hu.dwim.rdbms.oracle-utf-problems-8</title>
  <style type="text/css">
      body
      {
        font-family: Arial, Verdana, Sans-Serif;
        font-size: 12px;
        padding: 5px 5px 5px 5px;
        margin: 0px;
        border-style: none;
        background-color: #ffffff;
      }

      p, ul, li
      {
        margin-top: 0px;
        margin-bottom: 0px;
      }
  </style>
</head>
<body>
<p> </p><p>>>> > 12:20 0           RDBMS DRIBBLE Convert from 5, size is 90, content:<br />>>> > 66 00 6F 00 6F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />>>> > 00<br />>>> > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />>>> > 00<br />>>> > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />>>> > 00<br />>>> > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />>>><br />>>><br />>>> this data is utf-16, babel can deal with that, too.<br />>>><br />>>> i'm looking into installing oracle now, so that i can test it myself...<br />>>><br />>><br />>> Hm, the connection encoding is UTF-16. SBCL doesn't support UTF-16.<br />>> Therefore I have to convert<br />>> the UTF-16 string with babel to UTF-8 if babel does such a thing.<br />><br />><br />>reading this makes me think that you don't have a clear model of lisp<br />>strings/unicode/encodings.<br /><br />I probably don't, yes.<br /><br />><br />>i don't remember reading this article, but a quick glance looks<br />>promising: http://www.joelonsoftware.com/articles/Unicode.html<br />><br /><br />Interesting read, I saw this once but didn't read it. But I did now.<br /><br />>in short: you need to convert between lisp strings and byte arrays,<br />>sending/receiving byte arrays to/from the database. the encoding<br />>needed for OCI, oracle's C interface, is utf-16.<br />><br /><br />Is getting strings in utf-16 at this point a feature or a bug?<br />Asked another way: Am I supposed to convert utf-16 strings to lisp strings or should that already be in there?<br /><br />If it were not a bug I would get a byte array instead of a utf-16 string?<br />Error messages don't show up correctly either e.g. for violations of unique constraints?<br /><br />On the other hand, this being a feature would makes sense when thinking about where the data is supposed to be seen,<br />the major web browsers. Assuming the major web browsers support utf-16.<br /><br />But then, how do I go about manipulation utf-16 string data with sbcl.<br />Do I have to take a harder look at babel or flexi-streams?<br /><br /><br />>utf-8 is nowhere in the picture (if not the encoding emacs/slime uses<br />>to communicate with the cl process).<br />><br /><br />Isn't sbcl able to use utf-8 to represent its lisp strings?<br /><br /><br /><br /><br />Babel isn't able to convert between utf-16 and utf-8, yet? Confusion reigns ...<br /><br />ORACLE> (let ((octet-array (make-array 6 :element-type '(unsigned-byte 8)<br />                       :initial-contents (vector #X66 #X00 #X6F #X00 #X6F #X00))))<br />      (babel:octets-to-string octet-array :encoding :utf-8))<br />"f@^o@^o^@"</p><p>ORACLE><br /><br /><br />Regards,<br />chris<br /><br />>-- <br />> attila<br />><br />><br /> </p><p> </p>

!DSPAM:4cd1af6448581812115720!

</body>
</html>