(Sorry for the double post) Forget about ByteString.Char8: it doesn't handle unicode as it truncates characters.
Going from String to bytestring is easy thanks to the utf8-string ( http://hackage.haskell.org/packages/archive/utf8-string/0.3.7/doc/html/Codec-Binary-UTF8-String.html) package and pack function from Data.ByteString(.Lazy). And if you want to convert your String directly to a CString (a Ptr CChar) you better use Foreign.C.String.withCString. Le 22 mars 2012 15:17, Yves Parès <yves.pa...@gmail.com> a écrit : > This joins the question I asked two days ago here. (See > http://haskell.1045720.n5.nabble.com/Quickest-way-to-pass-Text-to-C-code-td5582223.html > ) > Hope that helps. > > Le 22 mars 2012 15:10, rajendra prasad <rajendradpra...@gmail.com> a > écrit : > >> Hi, >> >> I have just started learning Haskell FFI. I am trying to send a string >> from hastell to a C function. For this, I am required to convert the >> haskell string to byte string. I have two methods to achieve this task. >> Both are listed below: >> >> 1) import Foreign.C.String >> let arg1 = map castCharToCChar "Hello" :: [CChar] >> >> 2) import qualified Data.ByteString.Char8 as B >> f = B.pack "Hello" >> >> I just wanted to know the optimal way to achieve this task. Please >> suggest the optimal way of doing this. If there is any other way, please >> share it. >> >> Also, please suggest me any good tutorial to start with Haskell FFI for >> C/C++. >> >> Thank you very much. >> >> >> Regards, >> Rajendra >> >> _______________________________________________ >> Haskell-Cafe mailing list >> Haskell-Cafe@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell-cafe >> >> >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe