标签: multibyte

将一个句子分成单独的单词

我需要将一个中文句子分成单独的单词.中文的问题是没有空格.例如,句子可能看起来像:( ?????用空格表示:)?? ?? ?.

目前我可以想到一个解决方案.我有一个带有中文单词的字典(在数据库中).该脚本将:

  1. 尝试在数据库(??)中找到句子的前两个字符,

  2. 如果??实际上是一个单词并且它在数据库中,则脚本将尝试查找前三个字符(???).???不是一个字,所以它不在数据库中=>我的应用程序现在知道这??是一个单独的单词.

  3. 尝试与其他角色一起做.

我真的不喜欢这种方法,因为即使是一个小文本,它也会查询数据库太多次.

还有其他解决方案吗?

php cjk multibyte text-segmentation

13
推荐指数
2
解决办法
3276
查看次数

Unicode与多字节

我真的很困惑这个unicode vs多字节的东西.

假设我正在用Unicode编译我的程序(但最终,我想要一个独立于所用字符集的解决方案).

1)所有'char'都会被解释为宽字符吗?

2)如果我有一个简单的printf语句,即printf("Hello World \n"); 如果没有字符串,我可以不使用_tprintf和_T("...")吗?如果printf语句包含一个字符串,那么我应该使用_tprintf和_T("..."),即_tprintf("Hello%s \n",name); ?

3)如果我有一个文本文件(以默认格式保存,即不更改使用的默认字符集)我想要读入缓冲区,我仍然可以使用char而不是TCHAR吗?特别是如果我逐个字符地读它,即通过递增字符指针?

谢谢.

此致,Rayne

c unicode multibyte visual-c++

13
推荐指数
1
解决办法
1万
查看次数

如何使用PHP检查单词是日语还是英语

我想在这个函数中有不同的英语单词和日语单词的过程

function process_word($word) {
   if($word is english) {
     /////////
   }else if($word is japanese) {
      ////////
   }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

php unicode multibyte

13
推荐指数
2
解决办法
1万
查看次数

PHP:对多字节字符串安全的implode()函数是什么?

explode()函数具有相关的多字节安全功能mb_split().

我没有看到相关的功能implode().这是否意味着内爆对于多字节字符串已经安全了?

php implode multibyte

13
推荐指数
1
解决办法
3443
查看次数

两个多字节二进制数据变量之间的最快按位xor

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

def xor(data, key):
    l = len(key)

    buff = ""
    for i in range(0, len(data)):
        buff += chr(ord(data[i]) ^ ord(key[i % l]))
    return buff
Run Code Online (Sandbox Code Playgroud)

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

更新:

好,朋友们.这是一个快3.5倍的实现,它将数据和密钥分成4个,2个或1个字节(在我的情况下,大多数情况下它是4字节长整数):

def xor(data, key):
    index = len(data) % 4
    size = (4, 1, 2, 1)[index]
    type = ('L', 'B', 'H', 'B')[index]
    key_len = len(key)/size
    data_len = len(data)/size
    key_fmt = "<" + str(key_len) + type;
    data_fmt = "<" + str(data_len) + type;

    key_list = struct.unpack(key_fmt, key)
    data_list = struct.unpack(data_fmt, data)

    result …
Run Code Online (Sandbox Code Playgroud)

python bitwise-operators multibyte

12
推荐指数
1
解决办法
6810
查看次数

UTF-8字符无法正确显示

这是我的PHP代码:

<?php
$result = '';
$str = '???????? ???????';
for ($y=0; $y < strlen($str); $y++) {
    $tmp = mb_substr($str, $y, 1);
    $result = $result . $tmp;
}
echo 'result = ' . $result;
Run Code Online (Sandbox Code Playgroud)

输出是:

Тугайный Ñоловей
Run Code Online (Sandbox Code Playgroud)

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

php utf-8 multibyte

10
推荐指数
1
解决办法
2万
查看次数

为什么在PHP中使用多字节字符串函数?

目前,我不明白为什么在处理UTF-8时在PHP中使用mbstring函数非常重要?我在linux下的语言环境已经设置为UTF-8,那么为什么函数不能strlen,preg_replace等等默认情况下无法正常工作?

php utf-8 multibyte

9
推荐指数
3
解决办法
1万
查看次数

如何获取多字节字符串的字节大小

如何在Visual C中获取多字节字符串的字节大小?有功能还是我必须自己计算角色?

或者,更一般地说,如何获得TCHAR字符串的正确字节大小?

解:

_tcslen(_T("TCHAR string")) * sizeof(TCHAR)
Run Code Online (Sandbox Code Playgroud)

编辑:
我只讨论以空字符结尾的字符串.

c string size character-encoding multibyte

8
推荐指数
2
解决办法
9883
查看次数

mb_str_replace()...很慢.任何替代品?

我想确保我正在运行的一些字符串替换是多字节安全的.我在网络周围发现了一些mb_str_replace函数,但它们很慢.通过它可能会通过500-900字节后,我说的话增加了20%.

有什么建议?我正在考虑使用preg_replace,因为它是本机的并且已经编译,所以它可能更快.任何想法将不胜感激.

php multibyte

8
推荐指数
1
解决办法
3万
查看次数

我怎样才能在php中使用strlen for Persian?

我有这个代码:

$string = '???';
echo strlen($string);
Run Code Online (Sandbox Code Playgroud)

由于$string3个波斯字符,输出必须是3但我得到6.

???有3个字符.为什么我的输出是6

如何strlen()在php中使用具有实际输出的波斯语?

php persian strlen multibyte

8
推荐指数
3
解决办法
1059
查看次数