问题标签 [multibyte]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
840 浏览

php - 这个正则表达式会是多字节安全的吗?

我正在使用以下正则表达式来检查图像文件名仅包含字母数字、下划线、连字符、小数点:

这工作正常。但我担心多字节字符。我应该专门处理它们以防止未确定的错误,还是这个正则表达式拒绝 mb 文件名好吗?

0 投票
1 回答
1163 浏览

php - 非 latin1 字符的 mb_detect_encoding() 差异

我正在使用 mb_detect_encoding() 函数来检查字符串是否包含非 latin1 (ISO-8859-1) 字符。

由于日语不是 latin1 的一部分,因此我将其用作测试字符串中的文本,但是当将字符串传递给函数时,对于 ISO-8859-1,它似乎返回 ok。示例代码:

我试过使用'ASCII'而不是'ISO-8859-1',它正确返回false。有人能解释这种差异吗?

0 投票
6 回答
728 浏览

php - 多语言文本、php 和 mysql 帮助

尝试做我认为相对简单的事情时,我遇到了无穷无尽的问题:

我需要有一个表单,它可以接受用户输入的混合英语和其他语言、一些多字节(即日语、韩语等)的文本,并由 php 处理并存储(安全,避免 SQL 注入)在 mysql 数据库中。它还需要从数据库中访问、处理和在屏幕上使用。

我为拉丁字符设置了它,但是当我添加拉丁字符和多字节字符的混合时,它会变成乱码。

我试图做我的功课,但现在只是把头撞在墙上。

魔术引号已关闭,我尝试对表中的字段使用 utf8_encode/decode、htmlentities、addslashes/stripslashes 和(在 mysql 中)“utf8_general_ci”和“utf8_unicode_ci”。

部分问题在于,有太多地方我可能会搞砸,以至于我不确定从哪里开始解决问题。

非常感谢您对此提供的任何帮助。理想情况下,如果有人有工作的 php 代码示例和/或知道正确的 mysql 表格式,那就太好了。

0 投票
3 回答
1664 浏览

php - php 真正的多字节字符串洗牌功能?

我对多字节字符串有一个独特的问题,并且需要能够以一定程度的随机性在 PHP 中对长 UTF-8 编码的多字节字符串进行洗牌,而不会丢失或丢失或重复任何字符。

在 str_shuffle 下的 PHP 手册中,有一个不起作用的多字节函数(第一个用户提交的函数):如果我使用一个字符串,例如字符串长度为 120 个字符的所有日语平假名和片假名,我我返回了一个 119 个字符或 118 个字符的字符串。有时我会看到重复的字符,即使原始字符串没有它们。所以这不起作用。

为了使这更复杂,如果可能的话,我还需要包括日语 UTF-8 换行符、换行符和标点符号。

任何有使用 UTF-8 mb 字符串处理多种语言经验的人都可以帮忙吗?PHP是否有任何内置函数可以做到这一点?str_shuffle 正是我想要的。我只需要它也可以处理多字节字符。

非常感谢!

0 投票
1 回答
813 浏览

php - 帮助 PHP 和多字节字符

我有一个问题,我认为这很简单,但事实证明它非常复杂。

我有一个长的 UTF-8 字符串,它混合了罗马、西欧、日文和韩文字符和标点符号。许多是多字节字符,但有些(我认为)不是。

我需要做两件事:

  1. 确保没有重复的字符(并输出该新字符串,去除欺骗性)。
  2. 随机打乱该新字符串。

(对不起,我似乎无法让代码引用格式正确......)

和:

使用有人非常有帮助地提供的这两个函数,我认为我已经准备好了......除了奇怪的是,看起来唯一字符串(没有重复)和随机字符串不包含相同数量的字符。(我从浏览器中突出显示这些字符,然后剪切并粘贴到另一个应用程序中......一个字符串的长度总是与上面的不同,但它通常会有所不同......它甚至不是相同数量的字符得到每次都被截断!)。

对不起,我对 PHP 的了解不够,也不知道自己编写代码来侦查这个问题,但这里到底出了什么问题?似乎只洗一个大长弦应该很容易,但显然它比我想象的要困难得多。是否有另一种更简单的方法来做到这一点?我是否应该先将字符串转换为相应的十六进制数字并对其进行洗牌,然后再转换回 UTF-8?我应该输出到文件而不是屏幕吗?

有人有建议吗?对不起,我对此很陌生,所以我可能只是在做一些非常愚蠢的事情。

0 投票
7 回答
25428 浏览

php - UTF-8 字符无法正确显示

这是我的 PHP 代码:

输出是:

我能做些什么?我必须放入$resultMySQL 数据库。

0 投票
7 回答
7277 浏览

python - 两个多字节二进制数据变量之间的最快按位异或

实现以下逻辑的最快方法是什么:

在我的情况下,密钥是 20 字节的 sha1 摘要,数据是 20 字节和几(1、2、3)兆字节长之间的一些二进制数据

更新:

好了朋友们。这是一个快 3.5 倍的实现,它按 4、2 或 1 个字节的块分割数据和密钥(在我的例子中,大多数时候它是 4 字节长整数):

使用大量内存,但就我而言,这没什么大不了的。

任何想法如何提高速度几次?:-)

最后更新:

好的,好的...... numpy 完成了这项工作。这简直太快了:

最初的实现需要 8 分 50 秒来处理一个千兆字节,第二个 - 大约 2 分 30 秒,最后一个只是.... 0 分 10 秒。

感谢任何贡献想法和代码的人。你们是好人!

0 投票
4 回答
1625 浏览

php - php中的(飞)字符串函数和UTF8

为什么下面语句的输出是 3 而不是 1?

事情是这样的

将正确输出编码为 UTF-8 的符号。

0 投票
1 回答
1696 浏览

encoding - java中的多字节编码

我不知道如何添加多字节编码支持,而且对多字节语言知之甚少。在研究搜索引擎时,我的应用程序会扫描所有编程语言的代码。一些源代码的注释部分可能有 CJK 编码。为方便起见,我将 java 作为源代码示例,我的应用程序也在 java 中。

首先,我想编写测试用例来查看要索引的源代码是否具有 CJK 编码以及它是否由我的应用程序编码。如果不包括支持,我希望我的测试失败,以便将来添加。

但我不知道如何测试它,如何在单元测试的输入样本中输入 CJK 以及在 Java 应用程序控制台中输出什么。

0 投票
1 回答
345 浏览

php - 将多字节字符从 MSSQL 服务器迁移到 MySQL

我正在编写 PHP 脚本来将数据从 Microsoft SQL Server 迁移到 MySQL,到目前为止,这一直很顺利,除了多字节字符。有人可以帮我解决这个问题。从 PHP 和 MySQL 数据库的角度来看,应该注意哪些点。

  1. 我必须对 MySQL 配置进行一些更改吗?
  2. 我是否必须在 PHP 中更改多字节字符的字符编码,如果是的话如何?
  3. 还有什么我想念的吗?

谢谢。