• 关于 代码页转换 的搜索结果

问题

将Docx的多个页面转换为多个PNG文件

垚tutu 2019-12-19 16:32:50 0 浏览量 回答数 0

问题

1024网站嫩模.csv文件导入到MSSQL 2005 报错?报错

爱吃鱼的程序员 2020-06-08 15:51:20 0 浏览量 回答数 1

问题

VB中base64编码如何转换到Android中,已有初步代码,但转换结果不一致

爵霸 2019-12-01 19:26:46 1098 浏览量 回答数 1

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

问题

在Java中使用docx4j将DOCX转换为高质量的PNG转换

垚tutu 2019-12-19 16:37:27 12 浏览量 回答数 1

回答

转换json是前端做的事情,你的java代码获取了json,并且反序列化成对象,获取数据http://blog.csdn.net/zhejingyuan/article/details/9180885在前段页面上将这个数组对象用jquery的一个方法转换成json字符串后再作为表单参数发送给后台。参考: http://m.jb51.net/article/29729.htm后台再解析json成java对象。

杨冬芳 2019-12-02 03:04:56 0 浏览量 回答数 0

问题

PHP判断上传文件后执行格式转换

吴孟桥 2019-12-01 19:48:17 1020 浏览量 回答数 1

问题

尽管使用推荐的方法来停止此操作,pyinstaller仍会打开控制台

一码平川MACHEL 2019-12-01 19:32:13 660 浏览量 回答数 1

问题

【Android】关于如何选择的问题?

爵霸 2019-12-01 19:42:22 809 浏览量 回答数 1

问题

【Android】关于如何选择的问题?

爵霸 2019-12-01 19:47:21 652 浏览量 回答数 1

回答

ConvertOfficeFormat 该接口实现 OFFICE 文档格式的转换,用于文档打印、预览等场景。 它采用 同步请求 方式执行,执行完毕返回转换成功的页数。注意,同步转换超时时间为 5秒,如果大于 5秒 的转换需要使用异步接口 CreateOfficeConversionTask 。 请求参数 名称 类型 是否必填 描述 Project String 是 项目名 Action String 是 ConvertOfficeFormat SrcUri String 是 源数据的存储位置, OSS 资源采用如下格式”oss://bucket1/object” SrcType String 否 源数据的后缀类型,当前文档转换根据 OSS 对象的后缀名来确定源数据类型,当 OSS 对象没有后缀名时,可以设置该值 TgtType String 是 转换输出目标文件类型: vector,转成向量文件,需要使用 js 引擎来进行渲染 png,转成 png 格式的图片文件 jpg,转成 jpg 格式的图片文件 pdf,转成 pdf 文件 text,转成只包含文本内容的文件,主要用来提取文件的文本内容,注意只支持演示和表格文件类型 TgtUri String 是 转换输出内容到目标位置,建议 TgtUri 和 SrcUri 在同一个桶,便于权限管理 例如 OSS 桶的指定前缀”oss://bucket1/converttasks/session123/“ Password String 否 Office 文档的打开密码,如果需要转换有密码的文档,请设置该字段 StartPage int 否 从第 x 页开始转换,默认为1 EndPage int 否 转换至第 x 页,默认为200,如果需要转换全部页,设置为-1 MaxSheetRow int 否 表格文件转换最大行数,默认为1000。如果需要转换所有行,设置为-1 MaxSheetCol int 否 表格文件转换最大列数,默认为100,如果需要转换所有行,设置为-1 MaxSheetCount int 否 表格文件转换最多 sheet 数,如果需要转换所有Sheet,设置为-1 FitToPagesTall bool 否 表格文件转 pdf 时,将行全部输出到一页,默认为 false,只有设置 TgtType 为 pdf 时才会生效 FitToPagesWide bool 否 表格文件转 pdf 时,将列全部输出在一页,默认为 false,只有设置 TgtType 为 pdf 时才会生效 TgtFilePrefix String 否 转换后的文件名称前缀,在目标类型为 jpg, png, pdf 时才生效,可以是英文,数字,横划线,下划线,长度不超过256个字符,参考自定义目标文件名称 TgtFileSuffix String 否 转换后的文件名称后缀,在目标类型为 jpg, png, pdf 时才生效,可以是英文,数字,横划线,下划线,点号,长度不超过256个字符,参考自定义目标文件名称 TgtFilePages String 否 转换后输出指定文件页数,在目标类型为 jpg, png, pdf时才生效,默认输出所有页。例如:[1, 2, 100],只会输出1,2,100页到 TgtUri,最多指定100个页数,如果超过100页,请分多次转换进行提交 PdfVector bool 否 pdf 转换成 vector 时,是否使用向量模式,默认为 false true:使用向量模式,预览效果比较清晰,转换耗时较长 false:使用图片模式,预览效果一般,转换耗时较短 Hidecomments bool 否 word, ppt 转换成 vector, jpg, png 时,是否隐藏批注和应用修订,默认为 false true:隐藏批注,应用修订 false:显示批注和修订 DisplayDpi int 否 转换 jpg,png 时,设置图片分辨率,取值范围[96, 2048] 目前支持的 输入文件类型 包含如下 48 种格式: 演示文件:pptx、ppt、pot、potx、pps、ppsx、dps、dpt、pptm、potm、ppsm。 表格文件:xls、xlt、et、ett、xlsx、xltx、csv、xlsb、xlsm、xltm。 文字文件:doc、dot、wps、wpt、docx、dotx、docm、dotm。 其他格式文件: pdf、 lrc、 c、 cpp、 h、 asm、 s、 java、 asp、 bat、 bas、 prg、 cmd、 rtf、 txt、 log、 xml、 htm、 html。 目前支持的 输出文件类型 有如下 4 种: vector 向量模式,使用智能媒体管理产品提供的 前端渲染引擎,更好的支持翻页、缩放。 jpg 模式,按文件样式每页生成一张 jpg 图片。 png 模式,按文件样式每页生成一张 png 图片。 pdf 模式,每个文件生成一个 pdf 文件。 text 模式,按文件样式每页生成一个 text 文件 返回参数 名称 类型 描述 RequestId String 用户发送的每次接口调用请求,无论成功与否,系统都会返回一个唯一识别码 RequestId 给用户 PageCount Integer 转换成功的页数 基于TgtUri返回TgtLoc,在OSS对象存储中的命名规则 基于 TgtUri 参数指定的前缀,比如/bucket1/imm-format-convert-tgt/session123/,根据转换目标类型的不同,那么生成的目标文件也有所不同: 目标类型为 vector 时 如果源文件为非 excel 类型 /bucket1/imm-format-convert-tgt/session123/doc/meta.json /bucket1/imm-format-convert-tgt/session123/doc/fp1.json /bucket1/imm-format-convert-tgt/session123/doc/fp2.json /bucket1/imm-format-convert-tgt/session123/doc/fp[...].json /bucket1/imm-format-convert-tgt/session123/doc/I/1 /bucket1/imm-format-convert-tgt/session123/doc/I/2 /bucket1/imm-format-convert-tgt/session123/doc/I/[...] 如果源文件为 excel 类型 /bucket1/imm-format-convert-tgt/session123/doc/meta.json /bucket1/imm-format-convert-tgt/session123/doc/s1/meta.json /bucket1/imm-format-convert-tgt/session123/doc/s1/fp1.json /bucket1/imm-format-convert-tgt/session123/doc/s1/fp2.json /bucket1/imm-format-convert-tgt/session123/doc/s1/fp[...].json /bucket1/imm-format-convert-tgt/session123/doc/s2/meta.json /bucket1/imm-format-convert-tgt/session123/doc/s2/fp1.json /bucket1/imm-format-convert-tgt/session123/doc/s2/fp2.json /bucket1/imm-format-convert-tgt/session123/doc/s2/fp[...].json /bucket1/imm-format-convert-tgt/session123/doc/s[...] /meta.json /bucket1/imm-format-convert-tgt/session123/doc/s[...]/fp1.json /bucket1/imm-format-convert-tgt/session123/doc/s[...]/fp2.json /bucket1/imm-format-convert-tgt/session123/doc/s[...]/fp[...].json 注意:vector 模式需要使用特定的 js 引擎进行渲染。 目标类型为 jpg 时 如果源文件为非 excel 类型 /bucket1/imm-format-convert-tgt/session123/1.jpg /bucket1/imm-format-convert-tgt/session123/2.jpg /bucket1/imm-format-convert-tgt/session123/[...].jpg 如果源文件为 excel 类型 /bucket1/imm-format-convert-tgt/session123/s1/1.jpg /bucket1/imm-format-convert-tgt/session123/s1/2.jpg /bucket1/imm-format-convert-tgt/session123/s1/[...].jpg /bucket1/imm-format-convert-tgt/session123/s2/1.jpg /bucket1/imm-format-convert-tgt/session123/s2/2.jpg /bucket1/imm-format-convert-tgt/session123/s2/[...].jpg /bucket1/imm-format-convert-tgt/session123/s[...]/1.jpg /bucket1/imm-format-convert-tgt/session123/s[...]/2.jpg /bucket1/imm-format-convert-tgt/session123/s[...]/[...].jpg 注意:源文件为 excel 类型时,会先根据 excel 的表格数,生成对应数量的文件夹,再在对应的文件夹下,生成对应数量的 jpg 文件 目标类型为 png 时 如果源文件为非 excel 类型 /bucket1/imm-format-convert-tgt/session123/1.png /bucket1/imm-format-convert-tgt/session123/2.png /bucket1/imm-format-convert-tgt/session123/[...].png 如果源文件为 excel 类型 /bucket1/imm-format-convert-tgt/session123/s1/1.png /bucket1/imm-format-convert-tgt/session123/s1/2.png /bucket1/imm-format-convert-tgt/session123/s1/[...].png /bucket1/imm-format-convert-tgt/session123/s2/1.png /bucket1/imm-format-convert-tgt/session123/s2/2.png /bucket1/imm-format-convert-tgt/session123/s2/[...].png /bucket1/imm-format-convert-tgt/session123/s[...]/1.png /bucket1/imm-format-convert-tgt/session123/s[...]/2.png /bucket1/imm-format-convert-tgt/session123/s[...]/[...].png 注意:源文件为 excel 类型时,会先根据 excel 的表格数,生产对应数量的文件夹,再在对应的文件夹下,生成对应数量的 png 文件 目标类型为 pdf 时 /bucket1/imm-format-convert-tgt/session123/1.pdf 注意:转换 pdf 时,无论源文件是什么类型,都只会生成一个 pdf 文件 目标类型为 text 时 /bucket1/imm-format-convert-tgt/session123/1.text /bucket1/imm-format-convert-tgt/session123/2.text /bucket1/imm-format-convert-tgt/session123/[...].text 注意:只支持演示类型和文字类型的源文件 重复请求处理 基于幂等性的要求, 两次相同操作以最后执行的请求为准。 如果两次执行操作的内容相同或者重复请求(内容相同,SignatureNonce 也相同),并且系统已经存在该任务,则后续的请求直接返回成功,避免消耗计算资源做相同的任务。 转换生成目标文件 生成的目标文件会持久化保存,推荐为某个桶下的 /imm-format-convert-tgt/${name} 路径,从而便于维护管理。 您可以主动删除转换后的目标文件,如果不主动删除则会长期保留以备使用,但是会占用存储空间。如果希望自动的删除目标文件,您也可以在 /imm-format-convert-tgt 前缀下配置 OSS 的生命周期,这样目标文件在到期后,会根据策略被清除。 自定义目标文件名称 当前文档转换通过设置 TgtFilePrefix 和 TgtFileSuffix 来支持自定义文件名称 假设 TgtType 为 jpg,则目标文件名称规则如下: TgtFilePrefix 和 TgtFileSuffix 都为空的条件下,目标文件名称为:[x].jpg TgtFilePrefix 为空,TgtFileSuffix 为 aa,则目标文件名称为:[x]aa TgtFilePrefix 为 aa,TgtFileSuffix 为空,则目标文件名称为:aa[x] TgtFilePrefix 为 aa,TgtFileSuffix 为 bb,则目标文件名称为:aa[x]bb 备注:[x] 表示多个目标文件,从1开始,如果转换后的文件有8页,则所有的目标文件为: aa[1]bb, aa[2]bb, …, aa[8]bb 示例 请求示例 POST https://imm.cn-shanghai.aliyuncs.com ?Action=ConvertOfficeFormat &Project=test &SrcUri="oss://bucket1/test.pptx" &TgtType=vector &TgtUri="oss://bucket1/imm-format-convert-tgt/session123/" ... 此处的示例,目的是展示关键参数,还需要其他的公共参数才能正常调用,推荐使用 SDK 来发送 API。 成功返回示例 { "RequestId": "FF3B7D81-66AE-47E0-BF69-157DCF187514", "PageCount": 10 } 特殊错误码 如果转换出错,在返回的 JSON 中会包含如下字段 { "RequestId": "7DA1FCD1-004C-4EB4-B039-C6BBDCEB0701", "HostId": "imm.cn-shanghai.aliyuncs.com", "Code": "DocumentConvertFailed.NeedPassword", "Message": "The conversion has been failed, need password to open file." } 错误代码 说明 OSSAccessError OSS 访问失败,请检查 SrcUri,TgtUri 对应的 bucket,路径是否存在,所在 Region 是否和 IMM Region 一致 InvalidParameter.SrcType.NotSupported 不支持的文件类型,当前文档转换根据文件后缀名来判断文件类型,请检查文件后缀名,SrcType 参数 DocumentConvertFailed.ExceedFileSizeLimit 当前文档转换默认支持 40 MB 文件大小,超过该大小的文件转换时会抛出该错误 DocumentConvertFailed.OpenFileError 转换时,打开文件失败,请检查源文档后缀和内容是否匹配 DocumentConvertFailed.ExportFileError 转换时,处理文件内容失败,请检查源文档是否能够正常打开 DocumentConvertFailed.NeedPassword 该文档需要密码才能打开,请设置 Password 参数 ExecutionTimeout 执行超时,请检查文档大小,页数,如果确实需要转换,请使用异步接口 CreateOfficeConversionTask InternalError 内部错误,请开工单并提供 RequestId

1934890530796658 2020-03-31 12:46:55 0 浏览量 回答数 0

回答

以下答案仅供参考,希望能解决您的问题! 原因分析 SQL Server 使用 Unicode 编码格式的数据类型(例如 NCHAR、NVARCHAR)来支持包含中文在内的亚洲语言。在查询代码中,数据类型必须是 Unicode 编码的数据类型。但在上述示例代码中使用的数据类型是 VARCHAR,所以导致查询结果出现乱码。 解决方法 要解决在 SQL Server 的表中查询生僻字出现乱码的问题,只需要将上述示例代码中的数据类型改为 Unicode 编码格式的数据类型即可(下述示例中使用的是 NVARCHAR)。 另外,为避免乱码问题,在向 Unicode 编码格式的数据类型插入数据时,需要使用前置词 N。前置词 N 代表的是 SQL-92 标淮中的国家语言,且 N 必须大写。若您没有在 Unicode 字符串的常数前加 N 做为前置词,则 SQL Server 会在使用字符串之前将其转换成目前资料库的非 Unicode 字码页。 操作步骤 将上述示例中的数据类型 VARCHAR 改为 NVARCHAR,执行如下代码,查询 SQL Server 表中的生僻字“䅇 (su)”。 use tempdb go IF OBJECT_ID('#temp', 'U') IS NOT NULL DROP TABLE #temp GO create table #temp( firstName nvarchar(10) ) insert into #temp select N'䅇' union all select N'库' ; select * from #temp 显示结果如下,“䅇 (su)”字正确显示出来了。

KB小秘书 2020-07-22 15:52:00 0 浏览量 回答数 0

问题

PHP输出HTML块

小旋风柴进 2019-12-01 19:50:12 1712 浏览量 回答数 1

回答

为了编程方便和系统的安全性,人们发明了逻辑地址。在编程的时候写的地址就是逻辑地址,任何32位程序逻辑地址的取值范围都是 0x00000000-0xFFFFFFFF ,逻辑地址按照一定的方式转换成物理地址。每个进程的逻辑地址转换之后并不相同。所以这样就隔离的不同的进程,一个进程不能通过指针访问其他进程中的数据,所以比较安全。另外在一个进程看来,他独享了4GB(其中有一部分被操作系统占用)的内存空间。本程序不需要考虑其他进程的影响,所以编程的时候认为所有本程序独享了4GB的内存,程序写起来比较方便。每段代码都需要一个 GDT 数据结构,其中保存了段的基址(每个段不同)。逻辑地址+基址 得到一个线性地址,线性地址是唯一的(如果不同进程转换或后的线性地址相同那么他们是指同一段内存),但是线性地址还不能直接作为物理地址,因为我们需要一种虚拟内存技术(每个进程可以独享4GB,多个进程就可能需要的内存超出总内存,那么我们就把与部分数据保存到硬盘上),线性地址在通过查表的方式确定其对应的物理内存地址。如果查表的结果是在硬盘(虚拟内存)上,那么就需要从硬盘上把这部分数据移到物理内存中,返回这个物理内存的地址[注1]。注1: 如果内存不够,就会先把部分内存的数据放到虚拟内存里,然后在把需要的数据从虚拟内存读到实际内存。一般情况下个会比较费时,所以如果线性地址查表的结果是在虚拟内存里,会产生一个缺页中断 暂时挂起这个进程。

a123456678 2019-12-02 02:42:09 0 浏览量 回答数 0

回答

可以用CONVERT()来对日期时间值进行转换后再输出。 如:convert(varchar(10), getdate(), 111) 可以查看convert()的相关文档以了解其详细用法###### 表达有误,修正一下:   定义的数据类型: date 添加到数据库中的数据内容: 2010-11-7 数据库表中date列中的数据: 2010-11-7 列中的数据是不带  0:00:00  的. 但C#读取出来的显示的内容是: 2010/11/7 0:00:00 读取语句(页面中代码): <%#DataBinder.Eval(Container.DataItem,"date") %> .cs文件代码:   if (dr.HasRows)             {                 this.txtDate.Text = dr.GetValue(3).ToString();      }  ###### 日期的显示,最好是单独进行格式化处理,例如 Java 中的 DateFormat ,这样不管数据库是什么类型,应用显示上都是一致的。###### 问题已解决. 两种方法: 1.this.labMsg.Text = dr.GetDateTime(3).ToShortDateString(); GetDateTime(): 获取指定列的System.DateTime对象形式的值. ToShortDateString(): 将此实例的值转换为其等效的短日期字符串表示形式. 2.this.labMsg.Text = dr.GetValue(3).ToString().Substring(0,10); GetValue(): 获取以本机格式表示的指定列的值. Substring(Int32, Int32): 从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。 其实标题写错了,这个是代码本身的问题,并不是数据库的问题,在mssql2008中,设置为date类型的数据其本身格式就是: 2010-11-07. 是我用错了方法,GetValue()获取到的方法是以本机格式表示的,自然就成了2010/11/1 0:00:00这个的格式了,换成GetDateTime()然后将其转换是短时期字符串ToShortDateString()就可以了. 谢谢各位热心的朋友

kun坤 2020-06-07 20:31:08 0 浏览量 回答数 0

回答

这个问题想要说清楚还是挺复杂的,题主可以参考 New Options for Managing Character Sets in the Microsoft C/C++ Compiler 这篇文章。具体来说,源代码文件中的字符串常量能否正确的显示在控制台窗口中与以下几个因素有关: •源代码文件(.cpp)保存时所使用的字符集(下文用 C1 代替) •编译器在读取源代码文件时所使用的内部字符集(source character set)(下文用 C2 代替) •编译器在生编译时所使用的字符集(execution character set)(下文用 C3 代替) •运行可执行程序的控制台窗口所使用的字符集(下文用 C4 代替) 第一,“源代码文件保存时所使用的字符集”决定了源代码文件中的抽象字符保存到硬盘中是什么样的字节。这里所说的抽象字符,就是指人所能识别的文字(如“张”)。而字节则是由抽象字符按照字符集的规定映射的,不同的字符集映射的结果不一样(如“张”在 UTF-8 下映射的字节是E5 BC A0三个字节,而在 GBK 下映射的字节是D5 C5两个字节)。比如下面一行代码: char *s = "张三"; 其中的字符串常量"张三"在使用不同的字符集(C1)保存时,映射的字节是不同的。 第二,“编译器在读取源代码文件时所使用的内部字符集”决定了编译器如何把读入的源代码文件字节流进行转换。我所谓的转换就是指把字节流从一种编码转到另一种编码。举例来说,对于抽象字符“张”,如果采用 GBK 编码,映射的字节流就是D5 C5,而转换到 UTF-8 编码,就是把这个字节流转换成E5 BC A0。 这个字符集(C2)是由编译器决定的,标准中并未规定。不同的编译器可能采用不同的内部字符集,同样的编译器不同版本也可能采用不同的内部字符集。在 Visual C++ 的某些版本中,内部字符集是 UTF-8,编译器会尝试判断源文件所使用的字符集(C1),并将其转换成内部字符集(C2),如果编译器不能判断出文件所使用的字符集,则会默认其(C1)为当前操作系统的代码页(default code page)(这里如果判断错误,就会造成乱码或编译出错)。 比如:源文件如果是 UTF-8 with BOM,则能够正确的被 Visual C++ 识别,其中的抽象字符“张”映射的字节流E5 BC A0就会被正确的转换成E5 BC A0(没变)。而源文件如果是 UTF-8 without BOM,则不能正确的被 Visual C++ 识别,编译器会采用当前的代码页来进行转换,其中的抽象字符“张”映射的字节流E5 BC A0就会被当作 GBK 编码,错误的转换成其它字节流E5 AF AE ...(寮)。 第三,“编译器在编译时所使用的字符集”决定了编译器如何把源代码中使用内部字符集(C2)编码的字符/字符串常量转还到编译时所使用的字符集(C3)。这个字符集(C3)也是由编译器决定的,标准中并未规定。C++ 中的字符常量和字符串常量有不同的类型,它们对应于不同的 C3。 在 Visual C++ 中,参考 String and Character Literals 和前文提到的博客,可以推知不同类型的字符/字符串常量对应的 C3: // Character literals auto c0 = 'A'; // char, encoded as default code page auto c1 = u8'A'; // char, encoded as UTF-8 auto c2 = L'A'; // wchar_t, encoded as UTF-16LE auto c3 = u'A'; // char16_t, encoded as UTF-16LE auto c4 = U'A'; // char32_t, encoded as UTF-32LE // String literals auto s0 = "hello"; // const char*, encoded as default code page auto s1 = u8"hello"; // const char*, encoded as UTF-8 auto s2 = L"hello"; // const wchar_t*, encoded as UTF-16LE auto s3 = u"hello"; // const char16_t*, encoded as UTF-16LE auto s4 = U"hello"; // const char32_t*, encoded as UTF-32LE 编译器根据字符串常量的类型把其从 C2 转换到 C3(前面如果判断错误,这里就会继续保留错误)。 比如:auto s1 = "张";,抽象字符“张”在 C2 中(UTF-8)映射的字节流E5 BC A0就会被转换成在 C3 中(CP936,GBK)映射的字节流D5 C5。 auto s2 = u8"张";,抽象字符“张”在 C2 中(UTF-8)映射的字节流E5 BC A0`就会被转换成在 C3 中(UTF-8)映射的字节流E5 BC A0(不变)。 第四,“运行可执行程序的控制台窗口所使用的字符集”决定了如何把编译好的可执行程序中的字节流转换成抽象字符显示在控制台中。比如,在上一步中的s1映射的字节流就会通过 C4(CP 936)映射回抽象字符“张”,在我们看来就是正确的。而上一步中的s2映射的字节流就会通过 C4(CP 936)映射回抽象字符“寮”,在我们看来就是乱码。 以上,就是我理解的 C++ 中字符/字符串的编码处理方式,如果有误还请指出:-) 题主可以尝试在 Visual C++ 中把以下代码分别保存成 CP936、UTF-8 with BOM、UTF-8 without BOM 的格式,看看输出结果是什么。 #include <iostream> #include <fstream> using namespace std; int main() { char *s1 = u8"张"; char *s2 = "张"; cout << "s1 " << sizeof(s1) << " " << strlen(s1) << " -> " << s1 << endl; // Error in console cout << "s2 " << sizeof(s2) << " " << strlen(s2) << " -> " << s2 << endl; // OK in console ofstream os("s1.txt"); if (os.is_open()) { os << "s1 " << sizeof(s1) << " " << strlen(s1) << " -> " << s1 << endl; os.close(); } ofstream os2("s2.txt"); if (os2.is_open()) { os2 << "s2 " << sizeof(s2) << " " << strlen(s2) << " -> " << s2 << endl; os2.close(); } ofstream os3("s3.txt"); if (os3.is_open()) { os3 << "s1 " << sizeof(s1) << " " << strlen(s1) << " -> " << s1 << endl; os3 << "s2 " << sizeof(s2) << " " << strlen(s2) << " -> " << s2 << endl; os3.close(); } cin.get(); return 0; } 输出的三个文件中,前两个文件s1.txt和s2.txt都能够被正常的文本编辑器猜出其编码格式,从而正确显示内容,但是第三个文件s3.txt会显示成部分或全部乱码,因为其中既包含了 UTF-8 编码的字节流又包含了 GBK 编码的字节流,所以文本编辑器就不知道该用什么编码来把字节流映射回抽象文本了。 Character Encoding Model 标准引用和参考文档 From ISO C++11 § 2.3/1 The basic source character set consists of 96 characters: the space character, the control characters representing horizontal tab, vertical tab, form feed, and new-line, plus the following 91 graphical characters: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _ { } [ ] # ( ) < > % : ; . ? * + - / ^ & | ! = , \ " ’ From ISO C++11 § 2.3/2 The universal-character-name construct provides a way to name other characters. hex-quad: hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit universal-character-name: \u hex-quad \U hex-quad hex-quad The character designated by the universal-character-name \UNNNNNNNN is that character whose character short name in ISO/IEC 10646 is NNNNNNNN; the character designated by the universal-character-name \uNNNN is that character whose character short name in ISO/IEC 10646 is 0000NNNN. ... From ISO C++11 § 2.3/3 The basic execution character set and the basic execution wide-character set shall each contain all the members of the basic source character set, plus control characters representing alert, backspace, and carriage return, plus a null character (respectively, null wide character), whose representation has all zero bits. ... The execution character set and the execution wide-character set are implementation-defined supersets of the basic execution character set and the basic execution wide-character set, respectively. The values of the members of the execution character sets and the sets of additional members are locale-specific. From ISO C++11 § 2.2/1 The precedence among the syntax rules of translation is specified by the following phases. 1.Physical source file characters are mapped, in an implementation-defined manner, to the basic source character set (introducing new-line characters for end-of-line indicators) if necessary. The set of physical source file characters accepted is implementation-defined. ... Any source file character not in the basic source character set (2.3) is replaced by the universal-character-name that designates that character. ... 2.... 3.... 4.... 5.Each source character set member in a character literal or a string literal, as well as each escape sequence and universal-character-name in a character literal or a non-raw string literal, is converted to the corresponding member of the execution character set (2.14.3, 2.14.5); if there is no corresponding member, it is converted to an implementation-defined member other than the null (wide) character. 6.... From ISO C++11 § 2.14.3/5A universal-character-name is translated to the encoding, in the appropriate execution character set, of the character named. If there is no such encoding, the universal-character-name is translated to an implementationdefined encoding. [ Note: In translation phase 1, a universal-character-name is introduced whenever an actual extended character is encountered in the source text. Therefore, all extended characters are described in terms of universal-character-names. However, the actual compiler implementation may use its own native character set, so long as the same results are obtained. — end note ] From ISO C++11 § 2.14.5/6 7 156 After translation phase 6, a string literal that does not begin with an encoding-prefix is an ordinary string literal, and is initialized with the given characters.7 A string literal that begins with u8, such as u8"asdf", is a UTF-8 string literal and is initialized with the given characters as encoded in UTF-8....15 Escape sequences and universal-character-names in non-raw string literals have the same meaning as in character literals (2.14.3), except that the single quote ’ is representable either by itself or by the escape sequence ’, and the double quote " shall be preceded by a . In a narrow string literal, a universal-character-name may map to more than one char element due to multibyte encoding. ... ` •Character Sets •String and Character Literals •New Options for Managing Character Sets in the Microsoft C/C++ Compiler `

杨冬芳 2019-12-02 02:25:50 0 浏览量 回答数 0

回答

我以前也遇到过让人绝望的编码问题,总结了一下: 1.在程序中无论何时都使用unicode处理字符串,如果是Python2.X给自己的字符串前加一个'u',然后尽情地使用unicode。(tornado是不是默认unicode,我不知道,如果是果断使用unicode处理) 2.可以直接将unicode输出到IDLE或cmd.exe,系统会自动转换为gbk输出(前提是你系统的代码页是cp936或gbk)。 3.保存文本文件时,将unicode转换为utf-8存入,读取时,将utf-8转换为unicode。写入数据库也要encode成utf-8,读取时utf-8要decode成unicode处理。 4.至于linux下,我还没有试过,改天测试一下。 另外可以参考这篇文章: http://my.oschina.net/apoptosis/blog/119187 感谢你的回复,我已经解决了。什么都不用改,tornaodo使用的是unicode编码,只是在页面输出的时候在文件头"<metacharset="utf-8"/>"输出即可,在sublimetext2里面使用返回的是utf8编码,所以是无法正确现实的,在页面输出可以,编码解决了,后面的更痛苦,呵呵。

爱吃鱼的程序员 2020-06-22 20:57:38 0 浏览量 回答数 0

回答

说告诉你这个叫压缩了?谁又告诉你一定会变小了?######回复 @Feng_Yu : 谢谢您的解答。我运行上面代码时,jpg图片变小是因为ImageIO.write方法内部做了有损压缩(吗我是不是又绕回原点了。)。######回复 @我还有两袋水泥要扛 : 压缩过程理论上还是格式转换的过程。比如bmp无损位图保存为png无损压缩图片,这个容量是会变小的,转成jpg压缩率会更高,因为jpg是有损压缩,损失画质以达成高压缩比的目的。如果你想实现png -> png或者jpg -> jpg的转换,要求转换后有压缩,那就需要引入有损压缩的处理了######回复 @Feng_Yu :谢谢。 原来是这样,有点理解了。 这两句,原来是转换图片格式。######回复 @我还有两袋水泥要扛 : 具体可以参考tinypng(https://tinypng.com/)页面上的how it works.这里有他们网站压缩png的描述性算法。如果你真的想实现压缩,那么需要把你的方法进行改造,加入这些处理过程。当然如果你有多媒体基础,了解有损压缩算法就再好不过了,就不会有这个问题######回复 @我还有两袋水泥要扛 : 你的理解有误。这个只是转换图片格式而已,注意只是转换,并不一定会压缩。限于篇幅,无法在帖子中详细讲解多媒体有损压缩的原理,你可以自行去看一些资料。而且png是无损压缩格式,相比jpg压缩率较低,画质较好。如果你想压缩png,考虑删除元数据+降低到8bit+有损量化

kun坤 2020-06-07 00:30:19 0 浏览量 回答数 0

回答

第一种:在request对象获取页面Charset中的“C”大写,且页面无中文字符,最好用英文,否则MyEclipse无法保存此页面编码(表单页面可以不大写“C”)<%@ page contentType="text/html;Charset=GB2312" %> 第二种:tomcat4.x支持中文传码,但5.x不支持,如果用5.0以上的版本就得转码了,就是这种格式 <%@ page contentType="text/html;charset=GB2312" %> String strKeyWords=new String(request.getParameter("key_words").getBytes("iso8859_1"),"gb2312"); 这个是我们的项目解决sqlserver中文乱码的方案,可以试试看 第三种: 在 jsp、servlet中 申明这个方法转换一下: (表单JSP页面的编码一定要GB2312,且 charset中的“c”小写,此方法JSP页面就可以写中文字符 即:<%@ page contentType="text/html;charset=GB2312" %>) [java] view plain copy 在CODE上查看代码片派生到我的代码片 <%!public String handleString(String str){ try{ byte bb[]=str.getBytes("ISO-8859-1"); str=new String(bb); }catch(Exception e){ System.out.println("字符转换失败"+e); } return str; } %> <% String logname=request.getParameter("参数ID"); logname=handleString(logname); %> 第四种:在request对象获取提交的页面开头写(注意:此方法表单提交方式只能是post,而且表单页码的编码方式和request.setCharacterEncoding("utf-8"); 必须保持一致) <%@ page contentType="text/html; charset=utf-8"%> <% request.setCharacterEncoding("utf-8"); %> 第一行是页面编码方式第二行是传值编码方式 表单页面 [java] view plain copy 在CODE上查看代码片派生到我的代码片 <%@ page contentType="text/html; charset=utf-8"%> <html> <body> <form method="post" action="2.jsp"> <div align="center"> <input type="text" name="name"> <input type="submit" name="Submit" value="Submit"> </div> </form> </body> </html> </span> request对象获取页面 [java] view plain copy 在CODE上查看代码片派生到我的代码片 <%@ page contentType="text/html; charset=utf-8"%> <% request.setCharacterEncoding("utf-8"); %> <html> <body> <%=request.getParameter("name")%> </body> </html></span>

小旋风柴进 2019-12-02 02:14:01 0 浏览量 回答数 0

问题

如何在JSP页面中呈现HTML源代码

游客hvab22isfpklc 2020-03-31 11:27:10 106 浏览量 回答数 1

问题

最佳实践 -SQL Server -解决 SQL Server 表中的中文乱码问题

李沃晟 2019-12-01 21:40:20 553 浏览量 回答数 0

问题

canvas转换成img显示,为什么用toDataURL一直报is not a function错误

a123456678 2019-12-01 20:14:51 3317 浏览量 回答数 1

回答

这些类型在微软文档中是void*s: https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types 虽然可以肯定的是,cppyy(通过对Windows头文件的Clang解析)将它们解析为指向不透明类型的指针(即声明了前向,但没有定义): $ python >>> import cppyy >>> print(cppyy.gbl.HWND) <cppyy.TypedefPointerToClass object at 0x00000245E8839558> >>> 所以如果你想确定的话,你可能需要查找typedefs。 但是,不管HWND和HINSTANCE是指向不透明类的指针还是指向void的指针,即使您可以在32b Windows上对它们进行强制转换,在64b上从long到void*(或“不透明*”)的强制转换也不起作用,因为long值将被截断。因此,在类型映射中使用PyLong_AsVoidPtr而不是PyInt_AsLong。参见Python C-API文档: https://docs.python.org/3/c-api/long.html#c.PyLong_AsVoidPtr 如果类型是不透明类,您还需要显式的强制转换,最后的代码应该是: /* handle HINSTANCE */ %typemap(in) HINSTANCE { $1 = (HINSTANCE)PyLong_AsVoidPtr($input); } /* handle hwnds */ %typemap(in) HWND { $1 = (HWND)PyLong_AsVoidPtr($input); } 当然,如果HWND和HINSTANCE确实是无效的*根据微软文档页面,那么强制转换将是无操作的。

kun坤 2019-12-27 17:18:08 0 浏览量 回答数 0

问题

java正则截取出javascript中的json代码片段

杨冬芳 2019-12-01 20:18:59 953 浏览量 回答数 1

回答

1去掉中文路径2通过了解PRO格式文件有三种文件格式:PRO格式文件是Qt软件开发工具创建的项目文件,支持跨平台,不过在运行的之前,要使用QT命令将所有的信息进行编译,PRO格式文件包含文件有临时工程文件,源代码文件,项目库文件,还有一些其他的文件格式,如代码源文件QRC格式文件、项目文件是PRI文件,编译源文件是TS格式文件,样式文件。PRO格式文件也可能是ProPresenter创建演示文件,ProPresenter是编辑创建演示程序;可以包含视频和歌词歌曲和其他音乐;经常在使用的过程中创建可视化显示。PRO格式文件Adobe Proto创建的文件,用于创建交互式线框图的Adobe应用程序和网站原型;可以存储多个页面布局,每个互动元素;支持CSS WebKit,jQuery技术。Adobe原始设计可以呈现和在标准Web浏览器中查看。保存项目,可上载到Adobe创意更广泛的编辑云,然后在Dreamweaver中下载。打开程序/转换器建议重新编译再次执行,就可以了

a123456678 2019-12-02 01:57:01 0 浏览量 回答数 0

回答

我劝你一句,这个估计没几个人能搞定,你最好不要用正则了。(说实话,这种需求本身就不健康,虽然多年前我也遇到过类似的情况) 如果非要用正则呢,也不是不可以,但是你这个需求比我之前遇到的要复杂,我可以给你一个“匹配两个整数之间范围”的正则,但是还需要额外的处理工作,估计你也做不了(因为 "." 之间的数字其实不是独立的,是依赖于前面的一个数字的,所以这就不好写了,很费脑细胞的) 不过,你可以有另外一种选择:如果可以把版本号转换成一个数字的话就简单多啦,比如:2.1.3 => 2001003,但这需要存储的时候也按这种格式存储,或者额外存储一个这样的数字。并且 “.” 之间的数字要预留出足够的位数才行,但是这种方式足够简单,一行代码就可以搞定。 最后,把代码贴出来:http://www.oschina.net/code/snippet_85589_19550,这是之前做页游写的,然后移植的 java 版,应该没问题,因为游戏 OK。 提示:如果你用 2001003 这种方式的话,最好将代码中的 int 换成 long,这样才能支持足够大的位数。 ######谢谢,的确不好写,只有换种方式考虑了######需求还管怎么实现了?确实是需求不健康...

kun坤 2020-06-09 11:09:09 0 浏览量 回答数 0

回答

要明白哪个好的话首先我们就要搞清楚两者之间的区别:使用转义的话就是相当于输出原字符,既然特殊字符原字符输出了的话就必须和页面的编码方式和浏览器的编码方式有关系。如果页面的编码(如GBK)中不包含该特殊字符的话,或者浏览器的编码方式不包含该特殊字符的话,就会出现乱码。你所说的HTML代码的正统名字叫做HTML 字符实体,英文名字叫做HTML Entities。使用字符实体的话浏览器会自己将代码转换为正确的字符,就少了对编码方式的要求。关于字符实体的内容你可以多看看这些页面:HTML 字符实体 | HTML Entities总结来说,使用转义的话方便书写和阅读,但是对页面的编码方式有要求。使用HTML字符实体虽然少了编码方式的显示,但是不便于书写和阅读源码。所以我个人的建议是例如"这种稍微大众平常一点的字符还是转义输出比较好,而特殊的,可以独立于页面的特殊字符(如 © ® ™ 等)则使用字符实体的形式表现。字符实体这块虽然使用实体号来写会有更大的兼容性,但是个人倾向于用字符实体的名称,原因还是方便阅读。

落地花开啦 2019-12-02 02:51:11 0 浏览量 回答数 0

问题

如何让分离的数量不定html文件显示在一个web视图中?

杨冬芳 2019-12-01 19:57:08 983 浏览量 回答数 1

问题

phpexcel导入数据到数据库中中文出现乱码:报错

kun坤 2020-06-07 16:49:35 0 浏览量 回答数 1

回答

我看到“点此关闭音乐”怎么是链接到另一个页面的链接? ------------------------- 我没有看到播放器,可能是你的播放器按钮相应的控制代码有误 ------------------------- swf是flash的文件格式,mp3是声音文件,无法转换成swf格式的吧。你叫我QQ9953376,我帮你看看,论坛回复太花时间了

放牛娃 2019-12-02 02:06:51 0 浏览量 回答数 0

问题

PyQt5 如何在多页面中跳转和定位

is大龙 2020-03-24 23:26:34 4 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SSL证书 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 2020中国云原生 阿里云云栖号