问题标签 [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.
php - 这个正则表达式会是多字节安全的吗?
我正在使用以下正则表达式来检查图像文件名仅包含字母数字、下划线、连字符、小数点:
这工作正常。但我担心多字节字符。我应该专门处理它们以防止未确定的错误,还是这个正则表达式拒绝 mb 文件名好吗?
php - 非 latin1 字符的 mb_detect_encoding() 差异
我正在使用 mb_detect_encoding() 函数来检查字符串是否包含非 latin1 (ISO-8859-1) 字符。
由于日语不是 latin1 的一部分,因此我将其用作测试字符串中的文本,但是当将字符串传递给函数时,对于 ISO-8859-1,它似乎返回 ok。示例代码:
我试过使用'ASCII'而不是'ISO-8859-1',它正确返回false。有人能解释这种差异吗?
php - 多语言文本、php 和 mysql 帮助
尝试做我认为相对简单的事情时,我遇到了无穷无尽的问题:
我需要有一个表单,它可以接受用户输入的混合英语和其他语言、一些多字节(即日语、韩语等)的文本,并由 php 处理并存储(安全,避免 SQL 注入)在 mysql 数据库中。它还需要从数据库中访问、处理和在屏幕上使用。
我为拉丁字符设置了它,但是当我添加拉丁字符和多字节字符的混合时,它会变成乱码。
我试图做我的功课,但现在只是把头撞在墙上。
魔术引号已关闭,我尝试对表中的字段使用 utf8_encode/decode、htmlentities、addslashes/stripslashes 和(在 mysql 中)“utf8_general_ci”和“utf8_unicode_ci”。
部分问题在于,有太多地方我可能会搞砸,以至于我不确定从哪里开始解决问题。
非常感谢您对此提供的任何帮助。理想情况下,如果有人有工作的 php 代码示例和/或知道正确的 mysql 表格式,那就太好了。
php - php 真正的多字节字符串洗牌功能?
我对多字节字符串有一个独特的问题,并且需要能够以一定程度的随机性在 PHP 中对长 UTF-8 编码的多字节字符串进行洗牌,而不会丢失或丢失或重复任何字符。
在 str_shuffle 下的 PHP 手册中,有一个不起作用的多字节函数(第一个用户提交的函数):如果我使用一个字符串,例如字符串长度为 120 个字符的所有日语平假名和片假名,我我返回了一个 119 个字符或 118 个字符的字符串。有时我会看到重复的字符,即使原始字符串没有它们。所以这不起作用。
为了使这更复杂,如果可能的话,我还需要包括日语 UTF-8 换行符、换行符和标点符号。
任何有使用 UTF-8 mb 字符串处理多种语言经验的人都可以帮忙吗?PHP是否有任何内置函数可以做到这一点?str_shuffle 正是我想要的。我只需要它也可以处理多字节字符。
非常感谢!
php - 帮助 PHP 和多字节字符
我有一个问题,我认为这很简单,但事实证明它非常复杂。
我有一个长的 UTF-8 字符串,它混合了罗马、西欧、日文和韩文字符和标点符号。许多是多字节字符,但有些(我认为)不是。
我需要做两件事:
- 确保没有重复的字符(并输出该新字符串,去除欺骗性)。
- 随机打乱该新字符串。
(对不起,我似乎无法让代码引用格式正确......)
和:
使用有人非常有帮助地提供的这两个函数,我认为我已经准备好了......除了奇怪的是,看起来唯一字符串(没有重复)和随机字符串不包含相同数量的字符。(我从浏览器中突出显示这些字符,然后剪切并粘贴到另一个应用程序中......一个字符串的长度总是与上面的不同,但它通常会有所不同......它甚至不是相同数量的字符得到每次都被截断!)。
对不起,我对 PHP 的了解不够,也不知道自己编写代码来侦查这个问题,但这里到底出了什么问题?似乎只洗一个大长弦应该很容易,但显然它比我想象的要困难得多。是否有另一种更简单的方法来做到这一点?我是否应该先将字符串转换为相应的十六进制数字并对其进行洗牌,然后再转换回 UTF-8?我应该输出到文件而不是屏幕吗?
有人有建议吗?对不起,我对此很陌生,所以我可能只是在做一些非常愚蠢的事情。
php - UTF-8 字符无法正确显示
这是我的 PHP 代码:
输出是:
我能做些什么?我必须放入$result
MySQL 数据库。
python - 两个多字节二进制数据变量之间的最快按位异或
实现以下逻辑的最快方法是什么:
在我的情况下,密钥是 20 字节的 sha1 摘要,数据是 20 字节和几(1、2、3)兆字节长之间的一些二进制数据
更新:
好了朋友们。这是一个快 3.5 倍的实现,它按 4、2 或 1 个字节的块分割数据和密钥(在我的例子中,大多数时候它是 4 字节长整数):
使用大量内存,但就我而言,这没什么大不了的。
任何想法如何提高速度几次?:-)
最后更新:
好的,好的...... numpy 完成了这项工作。这简直太快了:
最初的实现需要 8 分 50 秒来处理一个千兆字节,第二个 - 大约 2 分 30 秒,最后一个只是.... 0 分 10 秒。
感谢任何贡献想法和代码的人。你们是好人!
php - php中的(飞)字符串函数和UTF8
为什么下面语句的输出是 3 而不是 1?
事情是这样的
将正确输出编码为 UTF-8 的符号。
encoding - java中的多字节编码
我不知道如何添加多字节编码支持,而且对多字节语言知之甚少。在研究搜索引擎时,我的应用程序会扫描所有编程语言的代码。一些源代码的注释部分可能有 CJK 编码。为方便起见,我将 java 作为源代码示例,我的应用程序也在 java 中。
首先,我想编写测试用例来查看要索引的源代码是否具有 CJK 编码以及它是否由我的应用程序编码。如果不包括支持,我希望我的测试失败,以便将来添加。
但我不知道如何测试它,如何在单元测试的输入样本中输入 CJK 以及在 Java 应用程序控制台中输出什么。
php - 将多字节字符从 MSSQL 服务器迁移到 MySQL
我正在编写 PHP 脚本来将数据从 Microsoft SQL Server 迁移到 MySQL,到目前为止,这一直很顺利,除了多字节字符。有人可以帮我解决这个问题。从 PHP 和 MySQL 数据库的角度来看,应该注意哪些点。
- 我必须对 MySQL 配置进行一些更改吗?
- 我是否必须在 PHP 中更改多字节字符的字符编码,如果是的话如何?
- 还有什么我想念的吗?
谢谢。