如何在PHP中把UTF8字符转换为数字字符实体
使用php? ,是以下代码的翻译 以下代码以JavaScript编写.它在需要的情况下返回使用数字字符引用的HTML.前任. smslån -> smslån 我在创建翻译方面没有成功. 这个脚本看起来可能起作用,但是返回 å 对于Å而不是 å ,如下所示. function toEntity() { var aa = document.form.utf.value; var bb = ''; for(i=0; i127) { bb += '&#' + aa.charCodeAt(i) + ';'; } else { bb += aa.charAt(i); } } document.form.entity.value = bb; } php的ord function
2 2023-05-27
编程技术问答社区
php fgetcsv-arset编码问题
使用php 5.3 fgetcsv功能,由于编码问题,我正在遇到一些问题.请注意,该文件具有西班牙语"特殊"拉丁字符,例如GraphicAccentsá,é,f,等等... 我获取CSV文件导出了MAC Excel文件中MS 2008中拥有的一些结构化数据. 如果我使用Mac OS X TextEdit应用程序打开它,那么一切似乎都变得完美. 但是,当我进入我的PHP程序并尝试使用该FGETCSV PHP功能读取CSV时,我没有得到正确读取CharSet的读数. /** * @Route("/cvsLoad", name="_csv_load") * @Template() */ public function cvsLoadAction(){ //setlocale(LC_ALL, 'es_ES.UTF-8'); $reader = new Reader($this->get('kernel')->getRootDir().'/../web
0 2023-05-27
编程技术问答社区
对UTF-8字符串使用数组索引时的错误输出
使用UTF-8字符串时,我遇到了问题.我想从字符串中读取一个字符,例如: $string = "üÜöÖäÄ"; echo $string[0]; 我期望看到ü,但是我会得到�-为什么? 解决方案 使用mb_substr($string, 0, 1, 'utf-8')获得角色. 您的代码中发生的是表达式$string[0]获得字符串的UTF-8编码表示的第一个字节,因为PHP字符串有效地是字节的数组(PHP没有内部识别编码). 由于字符串中的第一个字符是在一个以上的字节中组成的( utf-8编码规则),您实际上只能获得角色的一部分.此外,这些规则使您要检索无效的字节独立存在,这就是为什么您会看到问号. mb_substr 知道编码规则,因此它不会天真地给您只需一个字节;它将获得编码第一个字符的任务. 您可以看到$string[0]只给您一个字节: $string = "üÜöÖäÄ"; echo strlen($string[0]);
0 2023-05-27
编程技术问答社区
如何在perl中把十六进制转换为char字符串
我需要将%xx十六进制字符更改为字符.我正在尝试使用此代码,但行不通: #!/usr/bin/perl -w my $cadena = "%40%61%62"; print $cadena."\n"; $cadena =~ s/%//g; print "cad: ".$cadena."\n"; my $string =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg; print "traducida: ".$string; 解决方案 更改 my $string =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg; to $cadena =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg; 以便在$cadena上完成搜索和替换. 输出:@ab 40 => @ 61 => a 62 => b 其他解决方案 更好的正则态度
2 2023-05-24
编程技术问答社区
在C语言中对小整数使用char的优点/缺点
对于C中的小整数使用char是否有缺点?除了入住/记忆福利以外,还有其他优势吗? 尤其是,处理器是否可以在char上应对(long/short)int? 我知道这将是特定于处理器/系统/编译器,但我希望在一般情况下有一个答案,或者至少是32位Windows和Solaris的一般情况,是我是我的系统目前正在进行.我还假设已经处理了溢出/环绕式问题之类的事情. 更新:Visual Studio 6.0实际上没有Christoph建议的stdint.h.在Windows上进行一些基准测试(VS 6.0,调试构建,32位),带有少数堆叠环的基准,可提供int和long提供相似的性能,大约是char的两倍.使用GCC在Linux上进行相同的测试类似地pegs int和long相似,并且均高于char,尽管差异不太明显. 作为旁注,我没有花太多时间寻找,而是 vs 6.0的第一个实现的Visual Studio实现,我找到了(通过 wikipedia> wikipedia )将u
0 2023-05-23
编程技术问答社区
为什么getchar()的返回类型是int?
我在互联网上搜索了答案,但我不明白这是什么" eof"? 请让我从Basic中知道什么是GetChar(),它的用途是什么? 请注意,我只是C语言的初学者. 解决方案 在C中,char和int之间确实没有区别.甚至角色文字,例如'A',几乎普遍晋升为int. 但 最重要的是EOF是int值.如果char未签名(如果签名或未签名,则特定于char),则当将char value -1升级为int时,它变成0x000000ff,这与值-1是0xffffffff(假设两个正常的补体系统).
20 2023-05-23
编程技术问答社区
将无符号数组转换为整数
据我所知,在C编程语言中,数组通过元素存储在内存元素上. (即元素0,元素1,元素2,...,元素n).我正在尝试使用以下代码来查看这一点: unsigned char a[] = { '\1' , '\2', '\3' ,'\4' }; printf("%d\n", (int*) a); 由于未签名的char为1个字节,整数为4个字节;我认为它必须打印值: 00000001 00000010 00000011 00000100 = 2^2 + 2^8 + 2^9 + 2^17 + 2^24 = 16909060 但是,当我运行此程序时,它会为每个试验生成不同的结果. 我在这里缺少什么? 解决方案 您可能要使用*(int *)a,否则您只是在打印地址. 但是,这将调用实施定义的行为: 您将获得不同的结果,具体取决于 endianness 根据平台,char数组可能无法正确对齐,以读取为int. 编译器可能会根据您永远不会通过int
12 2023-05-23
编程技术问答社区
用int值初始化向量<char>。
我想使用此ASCII代码初始化此Char Vector: vector a = { 201, 187, 200, 188, 205, 186 }; 我在所有6个字符中都会获得此语法错误: 从" int"到" char"的狭窄转换无效:常数不适合目标类型 但是,当我初始化一个Char变量时,具有相同的ASCII代码: char b = 201; 它可以正常工作. 因此,我意识到在向量中,由于某种原因,char类型可以在127中接收int值.开始128语法错误出现. 这与正常变量不同,当char类型可以接收任何int值时. 我尝试将矢量声明为未签名的char,而语法错误则消失. vector a = { 201, 187, 200, 188, 205, 186 }; 但仍然, 为什么char类型向量无法接收与char类型变量相同的int数据? 我真的很感谢有人解释我这种行为.
20 2023-05-23
编程技术问答社区
C#: 将int转换为char,但以字面意思而非unicode表示
我试图将间间的人转换为字符.但是问题在于,每当我将其转换为Char的Unicode表示时,我可以告诉它.例如: int i1 = 3; char c1 = (char)i1; //also tried: char c1 = Convert.ToChar(i1) Console.WriteLine(c1); 这是我在调试时看到的: 它显示3,这正是我想要的,我希望将int 3转换为char'3',而是Unicode表示,'\ u0003'.因此,当我尝试打印它时,它会导致垃圾.我似乎在任何地方都找不到解决方案. 解决方案 如果我正确地给您,这就是您想要的 int i1 = 3; char c = (char)(i1 + '0'); Console.WriteLine(c); '0'在ASCII中为48.添加3至48为51,将51转换为char为3. 其他解决方案 也尝试了:c
14 2023-05-23
编程技术问答社区
查找各种Arial字体的字符宽度(像素)。
我有一个程序,该程序正在使用C#中的PDFSHARP手动生成PDF.尽管这很乏味,但我必须使用它,并且即将完成任务.只有一个问题. 问题:我想知道我如何找出给定字体大小的给定字符的宽度. 我很难提出更精确的文本包装方法.现在,一个人在像素中定义了一个框的宽度,然后继续在该框中写出一个字符串.我有点猜测字符串的最大长度可以安装在框中,并且有些视觉奇怪的奇怪性会不时出现. 有帮助吗? 谢谢 解决方案 在带有kerning的真实字体的时代,没有一个字符的宽度. 字符串" VA"的宽度可能少于字符串宽度" V"和" A"的宽度. 如果单个字符是一个起点,则总结宽度 - 但最后您必须测量完整的字符串. PDFSHARP包括执行此行包装的类XtextFormatter(带有完整的源代码).可以根据特定要求进行调整. 它使用gfx.MeasureString(token, this.font).Width测量字符串的宽度. 其他解决方案 我不确定您是否想要
6 2023-05-22
编程技术问答社区
在C#中,究竟什么被归类为 "符号"?
因此,我正在尝试编写一个要求您创建密码的程序.我有一个代码块,可以检查用户输入的字符串是否包含符号.当布尔值'有效password'等于true时,我的代码设置为退出循环. string pleaseenterapassword = "Create a password:"; bool validPassword = false; Console.WriteLine(pleaseenterapassword); // Writes to the screen "Create a password:" string password = Console.ReadLine(); //Sets the text entered in the Console into the string 'password' bool containsAtLeastOneSymbol = password.Any(char.IsSymbol); if (c
2 2023-05-21
编程技术问答社区
使用JDBC时,密码用字符串还是char[]?
这来自安全的观点.最重要的做法说不要使用字符串存储密码,而是一个char [].这是否适用于随时使用密码?例如,使用jdbc时使用字符串保存密码是可以接受的? public final void Login(String username, String password){ ... conn = DriverManager.getConnection(url, username, password); ... } 或可以在这里使用char []代替字符串? 解决方案 我不知道我接受您的前提,即在系统资源的上下文中,A char []比字符串更安全(例如JDBC数据库连接).无论如何,您可以使用连接管理器(或连接池,以适合您的容器为准),然后连接管理器(以及只有连接管理器)可以可见性数据库用户名/密码. 其他解决方案 Java中的字符串是不变的,一旦创建它,​​就无法更改,因此每当我们说 字符串S =" ABC"; s =" def"; 它们不是指同一字符串,而
0 2023-05-21
编程技术问答社区
为什么char[]比String更适合用于密码?
在秋千中,密码字段具有getPassword()(返回char[])方法,而不是通常的getText()(返回String)方法.同样,我遇到了一个建议不要使用String处理密码. 为什么String在密码方面对安全构成威胁? 使用char[]. 感到不便 解决方案 字符串是不可变的.这意味着一旦您创建了String,如果另一个进程可以转储内存,则无法(除了反射)您可以在 garbage collection 踢入. 使用一个数组,您可以在完成数据后明确擦除数据.您可以用所需的任何东西覆盖数组,并且即使在垃圾收集之前,系统都不会出现密码. 是的,这是一个安全问题 - 但即使使用char[]也只会减少攻击者的机会之窗,而仅适用于这种特定类型的攻击. 如评论中指出的那样,垃圾收集器移动的数组可能会将数据的流浪副本留在内存中.我相信这是实施特定的 - 垃圾收集器 May 清除了所有记忆,以避免这种事情.即使这样做,char[] char[]仍然有时间作为攻击窗口.
0 2023-05-21
编程技术问答社区
在C++中是否有办法将一个字符串字面意义作为引用来传递?
在C ++中,如果一个值不能为null,则通常是通过参考而不是指针传递. 假设我具有以下签名的功能,该签名通常与字符串文字一起使用. void setText( const char* text ); 我想知道如何以一种接受参考的方式更改功能(并且具有不接受null的优势)? 如果我会将其更改为(const char& text),则将是一个单个字符.地址可以从该功能中获取的地址...但感觉不好. 另一个选项是(const std::string& text),它的缺点是它总是称为构造函数并进行一些动态内存分配. 其他任何常见方法,或仅坚持std::string&或char*? 解决方案 老实说,我只保留const char* text函数,并添加一个const std::string& text函数,该功能调用第一个函数,该功能使用setText(text.c_str()) 其他解决方案 这里有一个微小的问题,因为C ++和参考对阵列并
0 2023-05-20
编程技术问答社区
Pascal。不兼容的类型:得到的是 "LONGINT",应该是 "CHAR"。
我不断获得" 98/39 comp1_〜1.pas 错误:不兼容的类型:获得" longint"预期" char".这是关于第6行的.请任何帮助. Function RollBowlDie(VirtualDiceGame : Boolean) : Integer; Var BowlDieResult : Char; Begin If VirtualDiceGame Then BowlDieResult := Random(6) + 1 Else Begin Repeat Writeln('Please roll the bowling die and then enter your result.'); Writeln; Writeln('Enter 1 if the result is a 1'); Writeln('
12 2023-05-20
编程技术问答社区
在C语言中对一个字符串进行标记?
我正在为用C编写的计算器制作终端解析器. 我无法弄清楚如何将操作员之间的所有数字串联以将它们放入数组中. 例如,如果输入(命令行参数)为" 4+342",则 理想情况下是input[] = {"4", "+", "342"}. 到目前为止,这是我的代码.我包括,和. typedef char * string; int main(int argc, char *argv[]) { string inputS = argv[1]; string input[10]; string temp; printf("%s\n", inputS); int i; int len = strlen(inputS); printf("parsed:\n"); for(i = 0; i
4 2023-05-20
编程技术问答社区
Java Char到其unicode十六进制字符串表示,反之亦然。
我需要将Java字符的十六进制代码生成字符串,然后稍后再次解析这些字符串.我发现在这里可以如下进行解析: char c = "\u041f".toCharArray()[0]; 我希望有更优雅的东西,例如 integer.valueof()用于解析. 正确生成十六进制的Unicode? 解决方案 在进行更深入的阅读之后,Javadoc说 trigalt/a>基于char参数的方法不支持所有Unicode值,但是那些采用代码点的方法(即int)do. 因此,我一直在执行以下测试: int codePointCopyright = Integer.parseInt("00A9", 16); System.out.println(Integer.toHexString(codePointCopyright)); System.out.println(Character.isValidCodePoint(codePointCopyrigh
2 2023-05-20
编程技术问答社区