将非 ASCII 字符串传递给 NPN_Invoke 时出现问题

发布于 2024-10-28 11:03:50 字数 284 浏览 3 评论 0原文

我的插件使用 NPN_Invoke 调用 JavaScript 函数,并向其传递一个字符串参数。如果其中的所有字符都是 ASCII,则一切正常。但如果字符串中存在非 ASCII 字符,则 JavaScript 会收到一个空字符串。

我验证了传递给 NPN_Invoke 的 NPVariant 变量(或者更确切地说,数组项)仍然包含有效字符串,因此看起来好像浏览器端发生了错误。

这真的是 Firefox 的 bug(我在 Windows 上用 FF 3.6 和 4.0 进行了测试),还是我做错了什么?有什么解决方法吗?

My plugin calls JavaScript function using NPN_Invoke, passing a string argument to it. Everything works fine if all characters in it are ASCII. But if there're non-ASCII characters in the string, then JavaScript receives an empty string.

I verified that an NPVariant variable (or, rather, an array item), passed to NPN_Invoke, still contain a valid string, so it appears as if something wrong happens on the browser side.

Is this really a Firefox bug (I tested on Windows with FF 3.6 and 4.0), or I am doing something wrong? Any workarounds?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

戏蝶舞 2024-11-04 11:03:50

这不是一个错误;而是一个错误。 NPAPI 仅接受 UTF8 字符串。如果字符串不是有效的 UTF8,浏览器将不会接受它。您不能使用 NPString 传递二进制数据。

This isn't a bug; NPAPI only accepts UTF8 strings. If the string is not valid UTF8, then the browser won't accept it. You can't use NPString to pass binary data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文