<div dir="ltr">Hello,<br><br>       I'm new to Elephant. <br>       My computer environment is: FreeBSD 6.2,  Elephant 0.9.1, SBCL 1.0.13, BDB 4.5. (  All elephant test cases for BDB are passed. )  <br>       I met some  problems related to Unicode.<br>
<br>       1.  Unicode contained  in a vector can not be serialized.  <br>            This issue is found when I submit a form to hunchentoot, which uses vector to store the submitted input string instead of simple array.<br>
<br>             Following codes illustrate the problem.<br><br>         (defpclass user ()<br>            ((login-name :accessor user-login-name :initarg :login-name :index t)<br>              (nick-name :accessor user-nick-name :initarg :nick-name :index t)<br>
              (password :accessor user-password :initarg :password)))<br><br>         <br>         (defvar *login-name1* nil)<br>         (setf *login-name1* (make-array 9 :element-type 'character :adjustable t :fill-pointer 0))<br>
         (vector-push #\u5c0f *login-name1*)<br>         (vector-push #\u5c0f *login-name1*)<br>         (vector-push #\u660e *login-name1*)<br><br>         (make-instance 'user :login-name *login-name1* :nick-name "Richard" :password "123")<br>
<br>          Error message:<br>          ---------------------------------------------<br>          The value "ССÃ÷" is not of type SIMPLE-STRING.<br>           [Condition of type TYPE-ERROR]<br><br>         Backtrace:<br>
         0: (ELEPHANT-SERIALIZER2::SERIALIZE-TO-UTF16LE #<unavailable argument> #<unavailable argument>)<br>         1: (ELEPHANT-SERIALIZER2::SERIALIZE-STRING #<unavailable argument> #<unavailable argument>)<br>
         2: (ELEPHANT-SERIALIZER2::SERIALIZE #<unavailable lambda list>)<br> <br>         Changing the vector to simple array can work around it:<br><br>        (make-instance 'user :login-name (copy-seq *login-name1*) :nick-name "Richard" :password "123")<br>
         <br>         Is it a known limitation ?<br><br>       2.   If the number of characters is odd, the Unicode string can not be used for index,<br><br>         (get-instance-by-value 'user 'login-name (copy-seq *login-name1*))<br>
         => nil    <br>          (get-instance-by-value 'user 'nick-name "Richard")<br>         => > #<USER oid:5><br>         <br>          If I change *login-name1* to  2, or 4 Unicode characters, the get-instance-by-value works.<br>
          But, if it contains 3 or 5 characters, the get-instance-by-value always returns nil.<br>         <br>         Does anyone meet the similar problem before?<br><br>Thanks<br>Li<br>          <br>          <br></div>