我注意到在Internet Explorer中(但不幸的是,在我测试的其他浏览器中没有),您可以使用一些Unicode变量名.这是我的一天,我非常高兴能够编写有趣的Unicode代码,如下所示:
var ??????????? = "You dirty horse.",
happy?n?mat?p?eia = ":)Yay!",
?_? = "emoticon";
alert(??????????? + happy?n?mat?p?eia + ?_?);
Run Code Online (Sandbox Code Playgroud)
但是,出于某些原因,并且???,?_?并且?它们不是有效的变量名称.
为什么?_?和???工作,但是???,?_?并?没有?
编辑:在JSFiddle上的浏览器中测试它.我在Internet Explorer 9,Chrome,Firefox和Opera中测试过它.到目前为止,它似乎只适用于Internet Explorer 9.(我不知道Internet Explorer 8及以下版本.)让我知道它是否适用于其他浏览器.
我最近一直在将各种位置的MP3转移到存储库中.我一直使用ID3标签构建新的文件名(谢谢,TagLib-Sharp!),我注意到我得到了一个System.NotSupportedException:
"不支持给定路径的格式."
这是通过产生任一File.Copy()或Directory.CreateDirectory().
没过多久就意识到我的文件名需要消毒.所以我做了一件显而易见的事:
public static string SanitizePath_(string path, char replaceChar)
{
string dir = Path.GetDirectoryName(path);
foreach (char c in Path.GetInvalidPathChars())
dir = dir.Replace(c, replaceChar);
string name = Path.GetFileName(path);
foreach (char c in Path.GetInvalidFileNameChars())
name = name.Replace(c, replaceChar);
return dir + name;
}
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,我继续得到例外.原来,':'不在集合中Path.GetInvalidPathChars(),因为它在路径根中有效.我认为这是有道理的 - 但这必须是一个非常普遍的问题.有没有人有一些消毒路径的短代码?最彻底的我已经想到了这一点,但感觉它可能是矫枉过正.
// replaces invalid characters with replaceChar
public static string SanitizePath(string path, char replaceChar)
{
// construct a list of characters that can't show up in filenames. …Run Code Online (Sandbox Code Playgroud) Java类名中有哪些字符有效?还有哪些其他规则管理Java类名称(例如,Java类名称不能以数字开头)?
您好我想从字符串中删除所有无效的XML字符.我想使用string.replace方法的正则表达式.
喜欢
line.replace(regExp,"");
什么是正确的regExp使用?
无效的XML字符是不是这样的一切:
[#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
Run Code Online (Sandbox Code Playgroud)
谢谢.
我试图创建一个由&符号分隔的变量赋值的查询字符串(例如:)"var1=x&var2=y&...".我计划将此字符串传递给嵌入式Flash文件.
我无法&在XSLT中显示符号.如果我只输入&没有标签,那么渲染XSLT文档就会出现问题.如果我键入&时没有标签,那么文档的输出&没有变化.如果我输入<xsl:value-of select="&" />或<xsl:value-of select="&" />我也收到错误.这可能吗?注意:我也尝试&amp;过没有成功.
经过一些研究,我发现名称的长度限制为255,值为32767个字符.
但是哪些字符可以用于名称?
哪些字符允许值?
windows invalid-characters environment-variables special-characters
我正在用Python编写一些邮件处理软件,它在头字段中遇到奇怪的字节.我怀疑这只是畸形邮件; 消息本身声称是us-ascii,所以我不认为有一个真正的编码,但我想得到一个unicode字符串近似原始的字符串而不抛出一个UnicodeDecodeError.
所以,我正在寻找一个功能,它需要一个str可选的一些提示,并且最好给我一个回复unicode.我当然可以写一个,但是如果存在这样一个函数,那么作者可能已经想到了更好的方法来解决这个问题.
我也知道Python的设计更喜欢显式到隐式,并且标准库旨在避免解码文本中的隐含魔法.我只想明确说"继续猜测".
即使我不应该,我仍然会收到Base64无效字符错误.
该程序获取XML文件并将其导出到文档.如果用户想要,它也会压缩文件.压缩工作正常并返回一个Base64字符串,该字符串被编码为UTF-8并写入文件.
当它将文档重新加载到程序中时,我必须检查它是否被压缩,代码只是:
byte[] gzBuffer = System.Convert.FromBase64String(text);
return "1F-8B-08" == BitConverter.ToString(new List<Byte>(gzBuffer).GetRange(4, 3).ToArray());
Run Code Online (Sandbox Code Playgroud)
它检查字符串的开头以查看其中是否包含GZips代码.
现在的问题是,我的所有测试都有效.我拿一根绳子,压缩它,解压缩,并将它与原始的相比较.问题是当我从ADO Recordset返回字符串时.字符串正是写入文件的内容(最后添加了一个"\ 0",但我认为它甚至没有做任何事情,即使修剪它仍然会抛出).我甚至将整个字符串复制并粘贴到测试方法中并压缩/解压缩.工作良好.
测试将通过,但代码将使用完全相同的字符串失败?唯一的区别是,只是声明一个常规字符串并传递它,我从记录集返回一个.
关于我做错什么的任何想法?
我正在从文件系统中读取文件名,我想将它们作为JSON编码数组发送.问题是文件系统上的文件可以存储在无效的编码中,我需要处理这种情况,在传递之前省略无效的文件名json.dump,否则会失败.
有没有办法检查我的字符串(文件名)是否包含有效的utf-8字符?
众所周知,XML文档中不允许使用某些字符范围.我知道过滤掉这些字符的解决方案(如[1],[2]).
按照不要重复自己的原则,我宁愿在一个中心点实现其中一个解决方案 - 现在,我必须在输入之前清理任何可能不安全的文本lxml.有没有办法实现这一点,例如通过继承lxml过滤器类,捕获一些异常或设置配置开关?
编辑:希望有点澄清这个问题,这里是一个示例代码:
from lxml import etree
root = etree.Element("root")
root.text = u'\uffff'
root.text += u'\ud800'
print(etree.tostring(root))
root.text += '\x02'.decode("utf-8")
Run Code Online (Sandbox Code Playgroud)
执行此操作会得到结果
<root>�</root>
Traceback (most recent call last):
File "[…]", line 9, in <module>
root.text += u'\u0002'
File "lxml.etree.pyx", line 953, in lxml.etree._Element.text.__set__ (src/lxml/lxml.etree.c:44956)
File "apihelpers.pxi", line 677, in lxml.etree._setNodeText (src/lxml/lxml.etree.c:20273)
File "apihelpers.pxi", line 1395, in lxml.etree._utf8 (src/lxml/lxml.etree.c:26485)
ValueError: All strings must be XML compatible: Unicode or ASCII, no …Run Code Online (Sandbox Code Playgroud)