char* jstringToWindows( JNIEnv *env, jstring jstr )
{
int length = (env)->GetStringLength(jstr );
const jchar* jcstr = (env)->GetStringChars(jstr, 0 );
char* rtn = (char*)malloc( length*2+1 );
int size = 0;
size = WideCharToMultiByte( CP_ACP, 0, (LPCWSTR)jcstr, length, rtn,(length*2+1), NULL, NULL );
if( size <= 0 )
return NULL;
(env)->ReleaseStringChars(jstr, jcstr );
rtn[size] = 0;
return rtn;
}
jstring WindowsTojstring( JNIEnv* env, const char* str )
{//gb2312转换成utf8/16
jstring rtn = 0;
int slen = strlen(str);
unsigned short * buffer = 0;
if( slen == 0 )
rtn = (env)->NewStringUTF(str );
else
{
int length = MultiByteToWideChar( CP_ACP, 0, (LPCSTR)str, slen, NULL, 0 );
buffer = (unsigned short *)malloc( length*2 + 1 );
if( MultiByteToWideChar( CP_ACP, 0, (LPCSTR)str, slen, (LPWSTR)buffer, length ) >0 )
rtn = (env)->NewString( (jchar*)buffer, length );
}
if( buffer )
free( buffer );
return rtn;
}
分享到:
相关推荐
解决JNI中文乱码,
描述提到"实现了C语言与java端之间互相传递汉字的功能",这意味着这个示例项目包含了一个完整的解决方案,演示了如何在两端进行正确编码和解码,以确保中文字符在转换过程中不被破坏。通常,这会涉及到Java的`String...
本教程将详细讲解如何使用JNI调用本地接口,特别是在处理中文字符传递时遇到的问题。 首先,我们需要理解JNI的基本结构。在Java端,我们会定义一个native方法,这个方法没有具体的实现,而是通过关键字`native`声明...
总之,这份“Android NDK JNI 中文 资料 文档”应当提供了从基础知识到实际操作的全面指南,帮助开发者深入理解如何在Android平台上利用NDK和JNI进行原生编程,提升应用性能和功能。通过学习和实践,开发者可以掌握...
在JNI中处理中文字符串可能会遇到一些挑战,因为Java的Unicode编码与C/C++的标准字符集(如ASCII或ISO-8859-1)不完全兼容。本资料将详细介绍如何在JNI中正确地传递和处理中文字符串。 首先,我们需要理解Java和C/...
### JNI中文翻译详解 #### 一、前言与翻译初衷 JNI(Java Native Interface)作为一项重要的技术,允许Java代码与本地代码(如C或C++)之间进行交互。这项技术不仅增强了Java程序的功能,还使得开发人员能够在利用...
JNI,全称Java Native Interface,是Java平台标准的一部分,它为Java程序员提供了一种方法,使得可以在Java程序中调用本地(非Java)代码,同时也能让本地代码调用Java对象。JNI在许多场景下非常有用,比如优化性能...
JNI,全称Java Native Interface,是Java平台提供的一种机制,允许Java代码和其他语言写的代码进行交互。这个接口定义了如何在Java应用程序中调用非Java代码,也允许非Java代码调用Java对象的方法。JNI在Java虚拟机...
JNI(Java Native Interface)是Java本地编程接口,它让Java代码与用C、C++等其他语言编写的程序和库进行交互。通过JNI,程序员可以实现Java代码无法完全覆盖的功能,例如,与平台相关的特定功能、与已存在非Java...
本资源提供了JNI规范的中文版,对于那些正在学习或者已经涉足JNI和NDK编译的开发者来说,这是一个非常有价值的参考资料。 JNI的核心概念包括以下几个部分: 1. **本地方法接口**:JNI定义了一组函数,这些函数使得...
### JNI详解中文版知识点概述 #### 一、JNI简介与重要性 JNI(Java Native Interface)是一种标准接口,由Sun Microsystems定义,旨在提供Java代码与本地代码(通常是C或C++编写的应用程序)之间的交互能力。JNI...
### JNI(Java Native Interface)中文手册关键知识点解析 #### 一、前言及背景 JNI(Java Native Interface)是Sun Microsystems公司定义的一套标准接口,用于实现Java代码与本地代码(通常是C或C++)之间的交互。...
### JNI编程指南中文版知识点详解 #### 一、引言:JNI的作用与适用场景 **JNI**(Java Native Interface)是Java平台的一项重要特性,它为开发者提供了将Java程序与本地代码(通常是指C/C++代码)进行集成的能力。...
JNI中文文档详细介绍里边带示范案例 NDK中文文档详细介绍了如何搭建Android开发环境以及如何编写ndk的makefile编译脚本,如何使用jni+ndk在Android上开发c++程序 不多说,学习开发Android程序的好东西
JNI在处理跨语言数据时,尤其是在涉及非ASCII字符集,如中文等多字节字符时,可能会遇到编码问题。本文将详细讨论在JNI中处理汉字问题及其解决方案。 首先,问题出现在`JniSample.c`中的`GetStringUTFChars`函数。...
标签:github、luben、zstd、jni、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
本资源是JNI的官方规范的中文翻译版,对于学习和理解JNI提供了极大的便利。 JNI规范主要包括以下几个核心概念和功能: 1. **本地方法接口**:JNI提供了一套接口,使得Java虚拟机(JVM)能够调用本地(非Java)代码...
java jni 传递汉字参数,包括java传入dll 从dll传出到java 读写ini 包括全部 java 代码 工程文件 全部vc++6.0 Dll 代码 工程文件 找了好久资料才完成的,传上来省的大家再走弯路。