Session::send_text 收 &[u16] 而不是 &str:整条链(Java 字符串 → JNI → 线格式 → Windows 注入)的原生表示都是 UTF-16,任何一次 UTF-8 往返都有损,故中间层不做转换。 空输入与超限在本层拦掉,超限走 clamp_text_units 并打日志。 nativeSendText 的参数用 char[](JObject 收再转 JCharArray),经 GetCharArrayRegion 按 u16 直接拷贝。不用 JString + get_string:jni 0.21 那条路走 Modified-UTF-8, IME 提交边界的落单代理项会在往返里丢。JNI 取数失败必须 eprintln,不能静默—— 用户对着远端打字最坏的情况是「看起来发送了」。 |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||