草庐IT

utf8_encoded_str

全部标签

c++ - 转换 c_str() 仅适用于短字符串

我在C++中使用C库并编写了一个包装器。有一次我需要将std::string转换为C风格的字符串。有一个带有函数的类,它返回一个字符串。如果字符串很短,则转换返回的字符串有效,否则无效。这是一个说明问题的简单简化示例:#include#includeclassStringBox{public:std::stringgetString()const{returntext_;}StringBox(std::stringtext):text_(text){};private:std::stringtext_;};intmain(intargc,char**argv){constunsigne

Transformer代码实现机器翻译示例(注意:Encoder_input,Decoder_input,Decoder_output:训练标签设定)

**Transformer原理+代码实现机器翻译示例(注意:Encoder_input,Decoder_input,Decoder_output:训练标签设定,设定模式不能出错,否则模型训练将极其难达到想要的效果,即使loss已经很低了,甚至模型非常优化也不能达到效果)Transformer原理:inputs:Encoder_inputOutputs:Decoder_inputOutputsprobility:Decoder_output##关键部分代码实现:maskedLoss:(一)importtorchimporttorch.nnasnnimporttorch.nn.functional

c++ - UTF-16 流中的错误 CRLF?

尽管我尽了一切努力,但还是无法解决这个问题。所以我完全卡住了,请帮忙!对于常规的“ASCII”模式,以下简化的文件和流输出FILE*fa=fopen("utfOutFA.txt","w");fprintf(fa,"Line1\nLine2");fclose(fa);ofstreamsa("utfOutSA.txt");sa自然地,结果在完全相同的文本文件中(十六进制转储):00000000h:4C696E65310D0A4C696E6532;Line1..Line2其中新行\n被扩展为CRLF:0D0A–Windows的典型。现在,我们对Unicode输出做同样的事情,即UTF-16L

Content type ‘application.yml/json;charset=UTF-8‘ not supported 并出现 HTTP状态码:415

问题出现今天在写Springboot项目的时候,用axios去调用post请求访问后台的接口数据,发现HTTP状态码415。并且在控制台出现了这样的异常错误,在查看了请求表头以后发现请求标头是这样的考虑出现问题的原因通过报错可以看出,对于axios发出Content-Type:application.yml/json;charset=UTF-8这样的请求表头是无法进行支持的可能是Springboot的版本问题,对于这种的格式不支持问题解决于是我们就考虑对发送的请求表头的Content-Type进行修改由于我没有找到axios直接去修改请求表头里Content-Type的内容的方式于是我便从源码

c++ - 使用 utf8 格式的正则表达式过滤字符串

我正在尝试过滤转义特殊字符并将其转换为小写的字符串。例如:"Goodmorning!"转换为goodmorning。我一次将一个字符串传递给我的函数。我成功地过滤了我的英语字符串,但在传递母语字符串时遇到了问题。如果我想包含所有utf-8字符,我应该使用什么类型的正则表达式过滤器字符串?#include#include#include#includestd::stringprocess(std::strings){std::stringst;std::regexr(R"([^\W_]+(?:['_-][^\W_]+)*)");std::sregex_iteratori=std::sre

c++ - std::string 实现是否符合 's.c_str() + s.size()' 不一定与 '&s[s.size()]' 相同?

§21.4.5[string.access]const_referenceoperator[](size_typepos)const;referenceoperator[](size_typepos);Returns:*(begin()+pos)ifpos.Otherwise,returnsareferencetoanobjectoftypecharTwithvaluecharT(),wheremodifyingtheobjectleadstoundefinedbehavior.至少对我来说,第二部分意味着这个“charT类型的对象”可能位于存储在std::string中的序列之外。目

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++ - std::string::c_str() 是否总是返回以 null 结尾的字符串?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:stringc_str()vs.data()我使用strncpy(dest,src_string,32)将std::string转换为char[32]来创建我的C++类使用遗留C代码。但是std::string的c_str()方法是否总是返回以null结尾的字符串?

c++ - string::c_str() 是否允许在堆上分配任何东西?

如果我需要从std::string中获取一个以NUL结尾的char数组,在这种情况下我需要确保不会分配任何内容,是使用c_str这样做安全吗?例如,如果我在析构函数中并且我想将一些数据从string复制到一个预先分配的固定大小的缓冲区中,我可以使用c_str和确定它不会抛出任何东西吗? 最佳答案 标准规定调用c_str()可能会使引用string元素的引用、指针和交互器无效,这意味着允许重新定位(21.3/5"类模板basic_string").您可能只想调用string::copy()来获取拷贝(如果需要,您需要自己添加空终止符)