当前位置: 首页 > 知识库问答 >
问题:

IronPython从Python字符串转换为SByte数组

贺福
2023-03-14

为了在IronPython中使用外部dll,我必须将一个字符串传递给一个char数组(在C++.NET中是char var[len];)。似乎期望传递一个SByte数组。

如果我尝试

myVarFromCLibrary = myPyString

我得到

TypeError: expected Array[SByte], got str

网上的信息很少。到目前为止,我发现我可以应用这样的内容:

from System import Array
...
myCString = Array[System.SByte](myPyString)

myVarFromCLibrary = myCString
TypeError: expected SByte, got str

共有1个答案

澹台俊晖
2023-03-14

与此同时,我找到了一个变通办法,但没有解决办法

def strToCharArray(theCharArray,theString):
  asBytes = bytes(theString,'ascii')  
  for i in xrange(len(theString)):
    theCharArray[i] = ord(asBytes[i])
  theCharArray[len(asBytes)] = 0

def charArrayToStr(theCharArray):  
  chars = []
  i     = 0
  while theCharArray[i]>0: 
    chars.append(chr(theCharArray[i]))
    i += 1
  return "".join(chars)

这使我的程序继续运行,但不是真正的解决方案

 类似资料:
  • 问题内容: 假设我有一个4字符串,并且我想将此字符串转换为字节数组,其中字符串中的每个字符都转换为等效的十六进制。例如 我正在尝试让我的输出成为 有没有简单的方法可以做到这一点? 问题答案: 编码功能可以为您提供帮助,编码返回字符串的编码版本 或者你可以使用数组模块

  • 问题内容: 有没有人能将不安全的字符串转换为? 该字符串通常回来为:或类似的东西。 在这种情况下,我要。如果我想。我从不希望该方法失败,但是我不愿意尝试,除非通过它只是为了隐藏错误(以防万一发生极端情况)。 问题答案: 在这种情况下,您确实有一种避免/的方法,尽管我不建议这样做(假设您的输入字符串名为,并且您处于必须返回某些内容的函数中): 将在部分就是你回什么是你想要比如说,如果是,空,全空间,

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字

  • 问题 怎样将C中的字符串转换为Python字节或一个字符串对象? 解决方案 C字符串使用一对 char * 和 int 来表示, 你需要决定字符串到底是用一个原始字节字符串还是一个Unicode字符串来表示。 字节对象可以像下面这样使用 Py_BuildValue() 来构建: char *s; /* Pointer to C string data */ int len; /*

  • 问题内容: 我有一个包含unicode字符等的字符串,以某种方式不被我接收,但被作为接收。如何将其转换回unicode? 显然不是答案。那是什么 问题答案: Unicode转义仅适用于unicode字符串,因此 实际上是由6个字符组成的字符串:“ \”,“ u”,“ 2”,“ 0”,“ 2”,“ 6”。 要从中制作出unicode,请使用:

  • 问题内容: 我有以下代码,我试图通过测试,但似乎无法理解Java世界中各种编码形式。 我想我的问题是:将任意字节的字节数组转换为Java字符串,然后将同一Java String转换为另一个字节数组的正确方法是什么,该字节数组将具有与原始字节相同的长度和相同的内容数组? 问题答案: 尝试特定的编码: ideone链接