JNI中文处理问题小结[4]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

int JStringToChar( JNIEnv * env, jstring str, LPTSTR desc, int desc_len )
{

    int
 len = 0;

    if
 (desc == NULL || str == NULL)
        return
 -1;

    // Check buffer size
    if (env->GetStringLength(str) * 2 + 1 > desc_len)
    {

        return
 -2;
    }

    memset(desc, 0, desc_len);

    const
 wchar_t * w_buffer = env->GetStringChars(str, 0);
    len = WideCharToMultiByte(CP_ACP, 0, w_buffer, wcslen(w_buffer) + 1, desc, desc_len, NULL, NULL);
    env->ReleaseStringChars(str, w_buffer);

    if
 (len > 0 && len < desc_len)
        desc[len] = 0;

    return
 strlen(desc);
}


本文关键:JNI中文处理问题小结
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top