Unicode 压缩ASCII数据以适应UTF-32 API?

Unicode 压缩ASCII数据以适应UTF-32 API?,unicode,azure,compression,azure-table-storage,Unicode,Azure,Compression,Azure Table Storage,我有一个接收Unicode数据的API,但我只需要在其中存储ASCII。我想压缩并模糊(或加密)将在Unicode中持久化的字符串值 我的愿望是要么压缩这个模式数据,要么对它进行加密。我认为不可能两个都做好 考虑到我想将我的源数据限制为有效的、可打印的ASCII;如何将原始字符串值“压缩”为更小、模糊或两者兼而有之的值 以下是我对这一工作的看法(尽管你可能有更好的方法): 此源代码将以给定字符串作为输入 将采用该字符串的字节表示形式(UTF8、ASCII,由您决定) 奇迹发生了-(这是我需要你帮

我有一个接收Unicode数据的API,但我只需要在其中存储ASCII。我想压缩并模糊(或加密)将在Unicode中持久化的字符串值

我的愿望是要么压缩这个模式数据,要么对它进行加密。我认为不可能两个都做好

考虑到我想将我的源数据限制为有效的、可打印的ASCII;如何将原始字符串值“压缩”为更小、模糊或两者兼而有之的值

以下是我对这一工作的看法(尽管你可能有更好的方法):

  • 此源代码将以给定字符串作为输入
  • 将采用该字符串的字节表示形式(UTF8、ASCII,由您决定)
  • 奇迹发生了-(这是我需要你帮助的部分)
  • 结果字节将转换为int或long(无小数点)
  • 将使用此实用程序将数字转换为相应的字符
  • (请注意,用于强制执行约束的实用程序是“final”Unicode名称不得包含以下字符“/”、“\”、“\”、“\”、“\”、“?”或“%”)

    背景

    Microsoft Azure表有一个API,它接受存储或属性名称的Unicode数据。这是一个无模式的数据库(因此可以临时创建列),因此模式按行存储。缺点是这种模式数据被多次存储在磁盘上,并且它还以XML blob的形式通过有线传输,非常冗余


    另外,我正在开发一个实用程序,但是模式是未加密的。我想以某种方式屏蔽或混淆此标题信息

    这些只是一些想法

    第3步不是很简单吗(只是将数据压缩和/或加密成不同的字节)?对于7位ASCII,您还可以在压缩和/或加密之前,通过打包位来存储数据,以便将其放入更少的字节中

    如果可以在步骤5中使用UTF-32、UTF-8等,则可以访问标准中的所有字符,最多0x10FFFD,但有一些例外;例如,某些代码点是Unicode标准中的非字符,如0xFFFF,而其他代码点是无效字符,如0xD800