linuxdeepin / developer-center

Deepin developer center, provide developer wiki and community forum.
451 stars 73 forks source link

[Deepin Integration]~[V23-Beta3] feat: update libunistring to 1.2 by xzl01@deepin-community/libunistring by deepin-community-ci-bot[bot] #10891

Open deepin-bot[bot] opened 1 week ago

deepin-bot[bot] commented 1 week ago

Package information | 软件包信息

包名 版本
libunistring 1.2-1

Package repository address | 软件包仓库地址

deb [trusted=yes] https://ci.deepin.com/repo/obs/deepin:/CI:/TestingIntegration:/test-integration-pr-2218/testing/ ./

Changelog | 更新信息

libunistring (1.2-1) unstable; urgency=medium

deepin-bot[bot] commented 1 week ago

Integration Test Info

Test suggestion | 测试建议

libunistring 是一个用于 Unicode 字符串处理的开源 C 库。它提供了一系列的函数,用于操作和处理包含 Unicode 字符的字符串,尤其适用于需要跨多种语言和字符集的应用程序。libunistring 被广泛用于文本处理和国际化需求的项目,尤其是涉及非拉丁字符、复杂字符组合或特殊字符处理的场景。

主要功能与特点

  1. Unicode 字符串处理:支持处理多字节 Unicode 字符串,解决不同字符编码的兼容问题。
  2. Unicode 正则表达式支持:支持匹配和处理 Unicode 正则表达式。
  3. 跨平台兼容性:提供对 POSIX 的兼容性,实现与 ISO C90 和 ISO C99 标准一致的字符串操作。
  4. 丰富的字符操作函数:包括大小写转换、字符分解与组合、字符串比较、排序、查找和分割等。

安装 libunistring

在大多数 Linux 发行版上都可以通过包管理器来安装 libunistring

Debian/Ubuntu 系统上:

sudo apt update
sudo apt install libunistring-dev

CentOS/RHEL 系统上:

sudo yum install libunistring-devel

使用 libunistring 编写示例程序

安装完成后,可以在 C/C++ 程序中使用 libunistring 提供的 API。以下是一个简单的 C 程序示例,演示如何使用 libunistring 处理 Unicode 字符串。

#include <stdio.h>
#include <unistr.h>
#include <unicase.h>
#include <unictype.h>

int main() {
    // 定义一个 UTF-8 编码的字符串
    const uint8_t text[] = "Hello, 世界!";

    // 计算字符串长度
    size_t len = u8_strlen(text, sizeof(text) - 1);
    printf("字符串长度为:%zu\n", len);

    // 将字符串转换为大写
    uint8_t uppercase_text[50];
    u8_toupper(uppercase_text, sizeof(uppercase_text), text, sizeof(text) - 1, NULL, NULL);
    printf("大写转换结果:%s\n", uppercase_text);

    return 0;
}

编译示例程序

将上面的代码保存为 example.c,并使用以下命令进行编译和链接:

gcc -o example example.c -lunistring

运行生成的 example 文件,可以看到对 Unicode 字符串的处理结果。

常用 API 函数

应用场景

libunistring 适用于需要 Unicode 支持的文本编辑器、命令行工具、多语言应用程序、网络服务等。它对字符集支持和处理复杂字符操作的需求提供了有力支持。

Influence | 影响范围

ADDITIONAL INFORMATION | 额外补充

deepin-bot[bot] commented 1 week ago

IntegrationProjector Notify the author @xzl01: Integrated issue updated

deepin-bot[bot] commented 1 week ago

IntegrationProjector Bot Deepin Testing Integration Project Manager Info Link to https://github.com/deepin-community/Repository-Integration/pull/2218

babyfengfjx commented 1 week ago

@kobe337 请开展集成验证。

kobe337 commented 1 week ago

【环境】: 镜像:Deepin OS-25-20241028133527-1_x86_64 内核:Linux deepin-PC 6.6.60-amd64-desktop-hwe #23.01.00.41 SMP PREEMPT_DYNAMIC Thu Nov 14 18:36:25 CST 2024 x86_64 GNU/Linux

【结论】: 测试通过,暂无严重问题及影响, 安装校验、版本核对,查看加载依赖库情况,验证通过,请研发同事确认,是否推送内测。 Image