From: Mathieu M. <mat...@gm...> - 2011-07-08 15:39:04
|
Just to close this thread, Umberto was perfectly right, the following did the trick for me: http://gdcm.git.sourceforge.net/git/gitweb.cgi?p=gdcm/gdcm;a=commitdiff;h=8f0b51c044a2c2a5028392652722d57f880b31d2#patch4 This is documented at: http://java.sun.com/docs/books/jni/html/pitfalls.html#12400 ... Strings in the Java virtual machine consist of Unicode characters, whereas native strings are typically in a locale-specific encoding. Use utility functions such as JNU_NewStringNative (§8.2.1) and JNU_GetStringNativeChars (§8.2.2) to translate between Unicode jstrings and locale-specific native strings of the underlying host environment. Pay special attention to message strings and file names, which typically are internationalized. If a native method gets a file name as a jstring, the file name must be translated to a native string before being passed to a C library routine. ... As a side note Umberto your code did not compile for me, for example: jclass cls = (*env)->FindClass(env, name); should read: jclass cls = env->FindClass(name); anyway thanks a *lot* for the quick solution ! On Thu, Jul 7, 2011 at 11:49 AM, Mathieu Malaterre <mat...@gm...> wrote: > On a different subject, I am not clear why it only fails on > windows7/64bits and not on my UTF8 debian/amd64 box... > > On Thu, Jul 7, 2011 at 11:47 AM, Mathieu Malaterre > <mat...@gm...> wrote: >> Dear William, >> >> I have reproduced the issue I am seeing here at: >> >> https://github.com/malaterre/PublicRep/tree/master/SWIG/string >> >> I used cmake to build the swig module. Once the module and >> testdemo.java are build just follow the instruction to execute: >> >> $ mkdir toto >> $ CLASSPATH=demo.jar;. java testdemo toto >> could not open toto\tête.txt >> >> The testdemo will create a file called 'tête' within the directory >> 'toto' in this above scenario. However this path cannot be passed >> properly to the fopen function. >> >> Hoping to be clear. >> >> Thanks ! >> >> On Thu, Jul 7, 2011 at 8:01 AM, William S Fulton >> <ws...@fu...> wrote: >>> I don't understand what the problem is here? SWIG provides wrappers for char >>> * which converts ASCII C strings to and from a Java string. What more do you >>> need? >>> >>> William >>> >>> On 04/07/11 17:59, Umberto Nicoletti wrote: >>>> >>>> I would rather say the issue is with java because all java strings are >>>> utf16. >>>> Dunno why swig doesn't provide standard wrappers. >>>> >>>> /Umberto >>>> >>>> On Monday, July 4, 2011, Mathieu Malaterre<mat...@gm...> >>>> wrote: >>>>> >>>>> Umberto, >>>>> >>>>> Thanks for the code. However I still do not understand if this is an >>>>> actual swig issue ? Why can't I simply use swig to do that ? >>>>> >>>>> Thanks >>>>> >>>>> On Mon, May 30, 2011 at 2:29 PM, Umberto Nicoletti >>>>> <umb...@gm...> wrote: >>>>>> >>>>>> Take a look at the mappings used by the mapserver project in: >>>>>> >>>>>> https://trac.osgeo.org/mapserver/browser/trunk/mapserver/mapscript/java/javamodule.i >>>>>> >>>>>> starting from line 44. >>>>>> HTH, >>>>>> Umberto >>>>>> On Mon, May 30, 2011 at 2:11 PM, Mathieu Malaterre >>>>>> <mat...@gm...> wrote: >>>>>>> >>>>>>> Hi there, >>>>>>> >>>>>>> I am wrapping a C library which basically fopen a file and so some >>>>>>> stuff. I could not figure out how to convert the java string given by >>>>>>> FileUtil.toFile(fo).getPath() into a proper local 8bits representation >>>>>>> (const char * expected by fopen). >>>>>>> >>>>>>> Does anyone has something already implemented ? >>>>>>> >>>>>>> Thanks >>>>>>> -- >>>>>>> Mathieu >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------------ >>>>>>> vRanger cuts backup time in half-while increasing security. >>>>>>> With the market-leading solution for virtual backup and recovery, >>>>>>> you get blazing-fast, flexible, and affordable data protection. >>>>>>> Download your free trial now. >>>>>>> http://p.sf.net/sfu/quest-d2dcopy1 >>>>>>> _______________________________________________ >>>>>>> Swig-user mailing list >>>>>>> Swi...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/swig-user >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Mathieu >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> All of the data generated in your IT infrastructure is seriously valuable. >>>> Why? It contains a definitive record of application performance, security >>>> threats, fraudulent activity, and more. Splunk takes this data and makes >>>> sense of it. IT sense. And common sense. >>>> http://p.sf.net/sfu/splunk-d2d-c2 >>>> _______________________________________________ >>>> Swig-user mailing list >>>> Swi...@li... >>>> https://lists.sourceforge.net/lists/listinfo/swig-user >>>> >>> >>> >> >> >> >> -- >> Mathieu >> > > > > -- > Mathieu > -- Mathieu |