标签: invalid-characters

为什么不是◎ܫ◎和☺有效的JavaScript变量名?

我注意到在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及以下版本.)让我知道它是否适用于其他浏览器.

javascript invalid-characters naming-conventions

720
推荐指数
4
解决办法
5万
查看次数

C#清理文件名

我最近一直在将各种位置的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)

c# validation invalid-characters path sanitize

159
推荐指数
8
解决办法
8万
查看次数

Java类名中的有效字符

Java类名中有哪些字符有效?还有哪些其他规则管理Java类名称(例如,Java类名称不能以数字开头)?

java unicode class invalid-characters naming-conventions

68
推荐指数
4
解决办法
14万
查看次数

从java中的字符串中删除无效的XML字符

您好我想从字符串中删除所有无效的XML字符.我想使用string.replace方法的正则表达式.

喜欢

line.replace(regExp,"");

什么是正确的regExp使用?

无效的XML字符是不是这样的一切:

[#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
Run Code Online (Sandbox Code Playgroud)

谢谢.

java regex xml invalid-characters

22
推荐指数
3
解决办法
7万
查看次数

即使在转义字符后也无法让xslt输出(&)

我试图创建一个由&符号分隔的变量赋值的查询字符串(例如:)"var1=x&var2=y&...".我计划将此字符串传递给嵌入式Flash文件.

我无法&在XSLT中显示符号.如果我只输入&没有标签,那么渲染XSLT文档就会出现问题.如果我键入&amp;时没有标签,那么文档的输出&amp;没有变化.如果我输入<xsl:value-of select="&" /><xsl:value-of select="&amp;" />我也收到错误.这可能吗?注意:我也尝试&amp;amp;过没有成功.

xml xslt escaping invalid-characters

19
推荐指数
4
解决办法
4万
查看次数

Windows环境变量名称和值的有效字符是什么?

经过一些研究,我发现名称的长度限制为255,值为32767个字符.

但是哪些字符可以用于名称
哪些字符允许

windows invalid-characters environment-variables special-characters

16
推荐指数
2
解决办法
9047
查看次数

是否有Python库函数试图猜测某些字节的字符编码?

我正在用Python编写一些邮件处理软件,它在头字段中遇到奇怪的字节.我怀疑这只是畸形邮件; 消息本身声称是us-ascii,所以我不认为有一个真正的编码,但我想得到一个unicode字符串近似原始的字符串而不抛出一个UnicodeDecodeError.

所以,我正在寻找一个功能,它需要一个str可选的一些提示,并且最好给我一个回复unicode.我当然可以写一个,但是如果存在这样一个函数,那么作者可能已经想到了更好的方法来解决这个问题.

我也知道Python的设计更喜欢显式到隐式,并且标准库旨在避免解码文本中的隐含魔法.我只想明确说"继续猜测".

python email invalid-characters character-encoding

15
推荐指数
3
解决办法
8222
查看次数

Base64字符串抛出无效字符错误

即使我不应该,我仍然会收到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",但我认为它甚至没有做任何事情,即使修剪它仍然会抛出).我甚至将整个字符串复制并粘贴到测试方法中并压缩/解压缩.工作良好.

测试将通过,但代码将使用完全相同的字符串失败?唯一的区别是,只是声明一个常规字符串并传递它,我从记录集返回一个.

关于我做错什么的任何想法?

c# string ado.net base64 invalid-characters

14
推荐指数
1
解决办法
10万
查看次数

在Python中检查有效的utf8字符串

我正在从文件系统中读取文件名,我想将它们作为JSON编码数组发送.问题是文件系统上的文件可以存储在无效的编码中,我需要处理这种情况,在传递之前省略无效的文件名json.dump,否则会失败.

有没有办法检查我的字符串(文件名)是否包含有效的utf-8字符?

python json invalid-characters utf-8

9
推荐指数
1
解决办法
1万
查看次数

在lxml中过滤无效unicode字符的中心方法?

众所周知,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>&#65535;&#55296;</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)

python xml unicode lxml invalid-characters

9
推荐指数
1
解决办法
1104
查看次数