问题标签 [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.
c++ - Visual Studio C++ 组合框控件不适用于多字节字符集
我有一个使用组合框控件的 Visual Studio 2005 C++ MFC 项目。财产Type = Dropdown
。该项目最初是在 UNICODE 中,组合框控件按预期工作。然后,我不得不将字符集从 UNICODE 更改为多字节字符集,以与 National Instruments 的 Measurement Studio 特殊工程包中可用的类/库兼容。这样做后,我注意到组合框将不再正常工作(即没有下拉菜单)。为了确认这一发现,我创建了一个大部分为空的项目,其中只有一个对话框,上面只有组合框控件。后台没有代码。
如果我"Test Dialog"
在编辑器中它按预期工作。如果我运行程序(无论是否有调试),我都会得到上述行为。如果我将字符集更改为 UNICODE,它运行得非常好。
作为旁注,我还注意到在切换到多字节后,我的原始项目中的一些按钮的外观发生了变化,但我没有测试它们的功能。
组合框控件的功能会受到所选字符集影响的已知原因吗?谢谢。
perl - 将 perl 中的多字节字符插入 oracle 时遇到 ORA-01461
我有一个 perl 脚本,它将文本文件中的记录插入到我们的数据库中。每当记录有像“RODR_Í_GUEZ”这样的多字节字符时。我收到错误 ORA-01461,但是我距离从 varchar2 切换到 long 的 4000 个字符还差得很远
环境:
在连接之前似乎没有帮助。
使用 java 客户端(SQuirreL SQL)并手动编写 INSERT INTO 语句可以很好地插入记录,所以我确定这不是数据库的配置方式。
有什么想法吗?
php - 在另一个多字节字符串中搜索一个多字节字符串
我使用此代码在另一个 utf-8 字符串中搜索一个 utf-8 字符串:
但它总是返回 0!有谁知道这个问题的更好解决方案?两个字符串都可能是 unicode 和非 unicode 字符的某种组合!
regex - 正则表达式替换多字节字符?
是否有类似正则表达式的东西可以用它们自己替换多字节字符?
即我有一个带有这样字符的大文本文件:
并想像这样替换它们:
我该怎么做,使用正则表达式?我已经试过了:
用。。。来代替
但这会将多字节字符(即 utf8)“拆分”为每行一个字节(因此一个字符超过 2 行拆分)。对于单字节字符,它工作正常......任何帮助将不胜感激。
wordpress - 如何使用 mb_substr 编写自定义摘录函数以在 WordPress 中返回 140 个多字节字符?
我不太确定我在做什么,但是在我试图在 WordPress 的自定义首页上返回 140 个多字节日文字符时,我在网上找到了自定义摘录的这段代码。可能是我没有 strip_tags 功能。如果是这样,有人可以告诉我我需要做什么才能让它工作吗?谢谢你。
php - 检测连续数字的正则表达式 - 不适用于非英语输入
大家好,我有这段代码可以检查 5 个或更多连续数字:
它适用于英语输入,但当输入字符串包含阿拉伯/多字节字符时它会出错 - 即使输入文本中没有数字,它有时也会返回 true。
有任何想法吗 ?
c - mbrtowc 的 s==NULL 案例的目的是什么?
mbrtowc
指定NULL
为(多字节字符指针)参数处理指针s
,如下所示:
如果 s 是空指针,则 mbrtowc() 函数应等效于调用:
在这种情况下,参数 pwc 和 n 的值将被忽略。
据我所知,这种用法在很大程度上是无用的。如果ps
不存储任何部分转换的字符,则调用将简单地返回 0 而没有副作用。如果ps
正在存储一个部分转换的字符,那么由于'\0'
它作为多字节序列中的下一个字节无效('\0'
只能是字符串终止符),因此调用将返回(size_t)-1
. errno==EILSEQ
并ps
处于未定义状态。
预期的用途似乎是重置状态变量,特别是当NULL
被传递ps
并使用内部状态时,类似于mbtowc
有状态编码的行为,但据我所知,这在任何地方都没有指定mbrtowc
,而且与存储部分转换字符的语义冲突(如果mbrtowc
在可能有效的初始子序列之后遇到 0 字节时重置状态,它将无法检测到这个危险的无效序列)。
如果mbrtowc
指定仅在s
is时重置状态变量NULL
,而不是在它指向 0 字节时,则可能会出现理想的状态重置行为,但这种行为会违反所写的标准。这是标准的缺陷吗?据我所知,一旦遇到非法序列,绝对没有办法重置内部状态(在ps
is时使用),因此没有正确的程序可以使用with 。NULL
mbrtowc
ps==NULL
c - 为什么 POSIX 将 wctomb 指定为非线程安全的,而不是 mbtowc?
在 XSH 2.9.1中,wctomb
被列为不需要线程安全的函数之一。但是,相反的转换函数 ,mbtowc
没有出现在列表中。在具有使用移位状态的编码的实现中,两者都没有线程安全的 API,并且要求一个是线程安全的而另一个不是,这是没有意义的,而如果不禁止有状态的编码,两者都不能是线程安全的。
对于wcstombs
(在列表中)和mbstowcs
(不在列表中)也是如此。由于这两个函数都对以初始移位状态开始和结束的整个字符串进行操作,因此它们不是有状态的,它们的 API 是线程安全的,同样,将一个方向指定为线程安全但不是指定方向是没有意义的其他。
任何人都可以对此有所了解吗?
php - 多字节标识符列表
我正在研究多字节字符以及它们是如何使用的,但是有多少不同的标识符/修饰符用于不同的多字节。
例如:&nbps;
, &#nbsp;
, U+0026
,%20
有多少种不同的标识符,例如&
, &#
,u+
等%
?
我试图寻找输入,如果它们的单词长度超过 255 个字符,那么它可能是一个多字节(黑客尝试),然后我可以检查单词是否可以拆分具有多字节标识符,然后停止黑客尝试。
c++ - wctomb 扼流圈每千分之一符号 (‰)
我正在尝试打印一堆单位标签;其中一些包含希腊字符,一些包含其他有趣的代码点。
我将其追溯到wctomb
不知道如何处理例如 UTF-16 字符 8240 的函数:
如何设置使用的语言环境wctomb
,例如“所有 unicode 字符”?
如何从我需要的字符开始找到我需要的正确语言环境名称?