草庐IT

utf8_unicode_cs

全部标签

c++ - 检查无效的 UTF8

我正在从UTF8格式转换为十六进制的实际值。但是,我需要捕获一些无效的字节序列。有没有一种快速的方法来检查一个字符是否不属于C++中的UTF8? 最佳答案 遵循Unicode中的表格标准,第3章。(我使用了该章(p103)的Unicode5.1.0版本;在Unicode6.0.0版本的p94上是表3-7,在Unicode6.3版本的p95上——它是在Unicode8.0.0版本的p125上。)字节0xC0、0xC1和0xF5..0xFF不能出现在有效的UTF-8中。记录了有效序列;其他都无效。表3-7。格式良好的UTF-8字节序列C

c++ - "UTF-16"和 "std::wstring"有什么区别?

这两种字符串存储格式有什么区别吗? 最佳答案 std::wstring是wchar_t的容器。wchar_t的大小未指定—Windows编译器倾向于使用16位类型,Unix编译器倾向于使用32位类型。UTF-16是一种在16位整数序列中编码Unicode代码点序列的方法。使用VisualStudio,如果您使用不包含BMP之外的字符的宽字rune字(例如L"HelloWorld"),你最终会得到UTF-16,但大多数情况下这两个概念是不相关的。如果您使用BMP之外的字符,std::wstring将不会翻译surrogatepairs

c++ - 理解写得不好的代码,第二年 CS 过去的论文

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。题目是描述代码做什么,函数做什么。以下代码是二年级C和C++模块过去试卷的一部分。任务是描述以下代码的作用。我已经完全按照所提供的方式编写了代码,并添加了一些我自己的评论。intg(int*y,unsignedsize,intz){inttmp=y[0];//whattypeisunsignedsize?IntIpresume.Whywouldyouad

c++ - 使用 C++11,我还需要一个用于 Unicode 文本的非标准字符串操作库吗?

我注意到std::string的length方法返回以字节为单位的长度,而std::u16string中的相同方法返回2字节序列的数量。我还注意到,当字符或代码点位于BMP之外时,长度返回4而不是2。此外,Unicode转义序列被限制为\unnnn,因此U+FFFF之上的任何代码点都不能被转义序列插入。换句话说,似乎不支持BMP之外的代理对或代码点。鉴于此,使用理解UTF-8、UTF-16、代理项对等的非标准字符串操作库是否已被接受或推荐?我的编译器是否有错误,或者我是否错误地使用了标准字符串操作方法?例子:/**ExamplewiththeUnicodecodepointsU+004

c++ - Windows unicode 命令行 argv

进入新千年后,我重写了我的C++代码:intmain(intargc,wchar_t**argv)如果使用Unicode或MBCS选项构建,那么当应用程序使用命令行arg运行时,直接或通过dbl-click传递给argv[]的文件名是不可读的=在某种中文字体的混合中。感谢您的评论-我会尝试在此处为搜索引擎总结(z)e。wmain(intargc,char**argv)只能用于命令行(子系统:控制台)应用intwinMain(intargc,wchar_t**argv)适用于gui(subsystem:windows),但gui将其替换为自己的入口点。对于Qt,这是行不通的qtmaind

python - 在 Windows 中处理 unicode 子进程环境的正确方法是什么?

以这个示例片段为例。importsubprocessimportosenv=os.environ.copy()env["FOO"]=u"foo"subprocess.check_call(["ls","-l"],env=env)在Windows上,这会失败。C:\Python27\python.exetest.pyTraceback(mostrecentcalllast):File"test.py",line7,insubprocess.check_call(["ls","-l"],env=env)File"C:\Python27\lib\subprocess.py",line535,

c++ - fstream::open() Unicode 或非 Ascii 字符在 Windows 上不起作用(使用 std::ios::out)

在一个C++项目中,我想打开一个文件(fstream::open())(这似乎是个大问题)。我的程序的Windows构建失败得很惨。文件“ä”(UTF-80xC30xA4)std::strings=...;//Convertsstd::fstreamf;f.open(s.c_str(),std::ios::binary|std::ios::in);//Works(f.is_open()==true)f.close();f.open(s.c_str(),std::ios::binary|std::ios::in|std::ios::out);//Doesn'twork字符串s是UTF-8

c++ - 将 UTF-8 格式的文件转换为 UTF-16

C++程序需要读取以utf-8编码的文件。不幸的是,使用char*它无法获取扩展字符(☺☻♥♦•◘等等),并且wchar_t*会错误地解释它们。我管理它的算法是:1)新建一个文件2)命名为[原名]Utf-163)复制原文件到新文件,同时进行转换4)提取数据。5)当不再需要时删除这个临时文件。我卡在了3),有没有像“FileUTF8toUTF16”这样的函数? 最佳答案 这是我用的intnLenWide=MultiByteToWideChar(CP_UTF8,0,(LPCSTR)(pData+nOffset),(int)(nDataL

windows - 无法使用 pymssql 将 Unicode 发送到 SQL Server

我在通过pymssql将unicode发送到SQLServer时遇到问题:In[1]:importpymssqlconn=pymssql.connect(host='hostname',user='me',password='password',database='db')cursor=conn.cursor()In[2]:s=u'MonsieurleCuréofthe«Notre-Dame-de-Grâce»neighborhood'In[3]:sOut[3]:u'MonsieurleCur\xe9ofthe\xabNotre-Dame-de-Gr\xe2ce\xbbneighbor

windows - 关于汇编远程调用和天堂之门,触发异常的段调用是否会在抛出异常之前推送 cs 和 eip?

目前我正在玩被称为“天堂之门”的windows/WOW64技巧,正如你们中的一些人可能知道的那样,即使在x86程序中,它也允许我们进入x64模式(我很惊讶当我测试了它,它成功了!)但我知道并非所有Windows版本都支持它,所以我的代码(因为有代码)使用seh,它看起来像这样:start:use32;;setupseh...call$33:.64bits_code;specify0x33segment,it'sthateasy;;successinx64mode,quitseh...jmp.exit.64bits_code:use64;;...use32retf.seh_handler