擅长:python、mysql、java
<p>你的代码对我来说就是这样。9f1f标记看起来太大了,无法容纳一个八位字节,因此它编码为两个。因为它是一个隐式标记,它取代了原来的标记。除此之外,我看不出它有什么特别之处。在</p>
<p>总之,这是我的Python控制台:</p>
<pre><code>>>> class MYData(univ.Set):
... tagSet = baseTagSet = tag.initTagSet(tag.Tag(tag.tagClassContext,
... tag.tagFormatSimple, 21))
... componentType = namedtype.NamedTypes(
... namedtype.OptionalNamedType('SampleField', univ.OctetString().subtype(
... implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 31)))
... )
>>> myData = MYData()
>>> myData['SampleField'] = 'A'
>>> print myData.prettyPrint()
MYData:
SampleField=A
>>>
>>> encoder.encode(myData)
'\xb5\x04\x9f\x1f\x01A'
>>> v, _ = decoder.decode('\xb5\x04\x9f\x1f\x01A', asn1Spec=myData)
>>> print v.prettyPrint()
MYData:
SampleField=A
</code></pre>
<p>我使用的是最新的pyasn1版本<a href="http://pyasn1.sourceforge.net/download.html" rel="nofollow">from here</a>。请澄清到底什么不起作用?在</p>