标签: encode

NSBlock的iOS NSMethodSignature(或编码)

我需要一种方法来检查运行时给定块的参数和参数类型的数量(我需要这个我正在编写的一些对象映射库,我将String格式的值映射到选择器,希望块的相同) .

我尝试了以下示例中的代码,但由于某种原因,它不适合我,并返回nil的字符串描述.

您是否知道在运行时评估块签名的方法(最好是iPhone应用商店提交的afe)?

这是我使用的代码:

struct BlockDescriptor {
unsigned long reserved;
unsigned long size;
void *rest[1];
};

struct Block {
void *isa;
int flags;
int reserved;
void (*invoke)(struct __block_literal_1 *);
struct BlockDescriptor *descriptor;
};

enum {
BLOCK_HAS_COPY_DISPOSE = (1 << 25),
BLOCK_HAS_CTOR = (1 << 26), // helpers have C++ code
BLOCK_IS_GLOBAL = (1 << 28),
BLOCK_HAS_STRET = (1 << 29), // IFF BLOCK_HAS_SIGNATURE
BLOCK_HAS_SIGNATURE = (1 << 30),
};

static const char *BlockSig(id blockObj)
{
struct Block *block = …
Run Code Online (Sandbox Code Playgroud)

encode ios objective-c-blocks

5
推荐指数
1
解决办法
2851
查看次数

在Java和C#中将base64编码的字节转换为不同的字符串

我有一些代码可以登录第三方解决方案,这需要我对密码进行编码.他们为我提供了Java样本,但我还需要用C#(以及后来的PHP)开发它.

我有一个C#Windows应用程序和一个Java Android应用程序中的代码,并且具有相同的输出,它们似乎工作得很好,直到我尝试将cypher字节转换为base 64编码的字符串.

这是Java代码:

enc = Base64.encodeBase64(ciphertext);
return enc.toString();
Run Code Online (Sandbox Code Playgroud)

这是C#代码:

return System.Convert.ToBase64String(cipherBytes);
Run Code Online (Sandbox Code Playgroud)

我可以看到Java应用程序中的密文字节与C#app中的密文字节相同,只是它们是有符号的,并且Java中的base64编码字节(如果转换为ASCII值)将给出我在中看到的字符串C#app,但Java中的enc.ToString()没有返回相同的字符串.

更多信息

Java的

ciphertext = 66, 67, -69, 24, -48, -23, 84, -5
encodeded64 = 81, 107, 79, 55, 71, 78, 68, 112, 86, 80, 115, 61
to string = [B@41771ea8
Run Code Online (Sandbox Code Playgroud)

C#

cipherBytes = 66, 67, 187, 24, 208, 233, 84, 251
result = QkO7GNDpVPs=
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助.(这是我在这里的第一篇文章,如果我违反任何规则,请随时告诉我)

c# java base64 encode

5
推荐指数
1
解决办法
4897
查看次数

视频解码期间的采样时间/呈现时间不一致

我正在编写一个可以通过摄像头输入编码视频并通过解码编辑编码步骤处理视频的APP.对于相机,我使用Camera类而不是Intent来配置相机的细节设置.然后我将摄像机帧提供给编码器(API 16中的MediaCodec)和复用器(我使用ffmpeg muxer,因为我想在4.1设备上工作).

我按系统纳米时间测量相机帧的时间码,并选择帧的子集以适合所需的FPS(当前为15).时间值中存在一些小的"噪声",例如(以ms为单位):0,60718,135246,201049,...而不是0,66000,133000,200000,.......

在尝试正确配置多路复用器之后(正如这个问题),我可以制作一个视频(带有AVC编解码器),可以由设备上的视频播放器播放.播放速度是正确的,所以我认为视频应该有正确的帧时间信息.

但是,当我尝试解码视频以执行视频编辑过程时,我遇到了问题.我使用标准视频提取/解码步骤作为这些示例,如下所示:

int decode_input_index = decoder.dequeueInputBuffer(TIMEOUT_USEC);
if (decode_input_index >= 0)
{
    ByteBuffer decoder_input_buffer = decode_input_buffers[decode_input_index];
    int sample_size = extractor.readSampleData(decoder_input_buffer, 0);
    if (sample_size < 0)
    {
        decoder.queueInputBuffer(decode_input_index, 0, 0, 0, MediaCodec.BUFFER_FLAG_END_OF_STREAM);
        is_decode_input_done = true;
    }
    else
    {
        long sample_time = extractor.getSampleTime();
        decoder.queueInputBuffer(decode_input_index, 0, sample_size, sample_time, 0);
        extractor.advance();
    }
}
else
{
    Log.v(TAG, "Decoder dequeueInputBuffer timed out! Try again later");
}
Run Code Online (Sandbox Code Playgroud)

来自getSampleTime()的采样时间在我对视频进行编码时具有正确的值.(例如,它们正好是0,60718,135246,201049,......在我们身上).它也是decoder.queueInputBuffer()输入中的显示时间.当解码器继续解码这个帧时,我得到帧时间:

int decode_output_index = decoder.dequeueOutputBuffer(decode_buffer_info, TIMEOUT_USEC);
switch (decode_output_index)
{
    ....
    (some negative-value flags …
Run Code Online (Sandbox Code Playgroud)

android encode decode mediacodec mediaextractor

5
推荐指数
1
解决办法
3865
查看次数

使用Java在Base64中对URL中的图像进行编码

我想编码并保存Base64中的URL图像.我发现了几个从本地文件进行编码而不是从URL进行编码的示例.有可能这样做吗?

我尝试过类似的东西,但没有成功.任何线索,有帮助吗?感谢您的回答.

    public static void main(String[] args)  {
    String imageUrl = "http://www.avajava.com/images/avajavalogo.jpg";
    String destinationFile = "image.jpg";

    try {           
        // Reading a Image file from file system
        URL url = new URL(imageUrl);
        InputStream is = url.openStream();

        FileInputStream imageInFile = new FileInputStream(is.toString());
        byte imageData[] = new byte[2048];
        imageInFile.read(imageData);

        // Converting Image byte array into Base64 String
        String imageDataString = encodeImage(imageData);
        System.out.println("imageDataString : " + imageDataString);




        System.out.println("Image Successfully Manipulated!");
    } catch (FileNotFoundException e) {
        System.out.println("Image not found" + e);
    } catch (IOException ioe) …
Run Code Online (Sandbox Code Playgroud)

java base64 encode

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

为什么编码删除参数?

为什么encode删除传递的参数,如果CHECK设置为true值?

#!/usr/bin/env perl
use warnings;
use strict;
use utf8;
use Encode;

my $decoded = 'h';
if ( eval { encode( 'utf-8', $decoded, 1 ); 1 } ) {
    print "|$decoded|\n";    # prints ||
}
Run Code Online (Sandbox Code Playgroud)

perl encode

5
推荐指数
1
解决办法
86
查看次数

从文本文件编码表情符号(Python)的最佳和干净的方法

提到这个问题:Emoji在上传到Big Query时崩溃

我正在寻找最好、最干净的方法来将表情符号从这种\ud83d\ude04类型编码为这种类型(Unicode) -\U0001f604因为目前,我除了创建 python 方法之外没有任何想法,该方法将传递文本文件并替换表情符号编码。

这是可以转换的字符串:

在 python 3 中将表情符号转换为 Unicode,反之亦然

作为假设,也许需要逐行传递文本并转换它?

潜在的想法:

with open(ff_name, 'rb') as source_file:
  with open(target_file_name, 'w+b') as dest_file:
    contents = source_file.read()
    dest_file.write(contents.decode('utf-16').encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

python unicode encode text-files emoji

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

在 perl 脚本中/与 perl 脚本一起使用 utf8

我在德语 Windows 7 下运行最新的 perl,我想在我的 perl 程序中的任何地方使用 utf8(对于脚本、文件内容、文件名、邮件文本等)。

一切正常,但在尝试处理文件名中包含特殊字符的文件时,我遇到了问题。即使system打电话也不能很好地工作。utf8 那么(如何)我可以告诉 perl在任何地方使用?

我尝试了一段时间encodedecode但很不清楚为什么它能起作用......而且我需要encode('cp850', TEXT)在命令提示符窗口中正确显示。

例子:

当我需要复制文件时,它仅在我使用时有效File::copy(encode("iso-8859-1", $filename), ...),并且当我想使用 pdf 文件内容时,成功的命令是system(encode('cp850', sprintf('pdftk.exe %s...', decode('utf8', $file))));

为什么会这样(特别是系统调用中的解码)并且有更简单的方法吗?也许有什么use open ':encoding...',但到目前为止我还没有运气。

windows perl encode decode utf-8

5
推荐指数
1
解决办法
1603
查看次数

为什么我们需要在Python中进行编码和解码?

编码/解码的用例是什么?

\n\n

我的理解是,编码用于将字符串转换为字节字符串,以便能够在程序中传递非 ascii 数据。而decode就是将这个字节串转换回字符串。

\n\n

但是,跟着吧。示例显示即使未编码/解码,非 acsii 字符也能成功打印。例子:

\n\n
val1="\xc3\x80 \xc3\x88 \xc3\x8c \xc3\x92 \xc3\x99 \xe1\xbb\xb2 \xc7\xb8 \xe1\xba\x80"\nval2 = val1\nprint(\'val1 is: \',val2)\n\nencoded_val1=val1.encode()\nprint(\'encoded_val1 is: \',encoded_val1)\n\ndecoded_encoded_val1=encoded_val1.decode()\nprint(\'decoded_encoded_val1 is: \',decoded_encoded_val1)\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出:

\n\n

在此输入图像描述

\n\n

那么 python 中的编码和解码的用例是什么?

\n

python encode decode python-3.x

5
推荐指数
1
解决办法
4481
查看次数

在 Python 3 中,如何从字符串中删除所有非 UTF8 字符?

我正在使用Python 3.7。如何从字符串中删除所有非 UTF-8 字符?我尝试在下面使用“lambda x: x.decode('utf-8','ignore').encode(“utf-8”)”

coop_types = map(
    lambda x: x.decode('utf-8','ignore').encode("utf-8"),
    filter(None, set(d['type'] for d in input_file))
)
Run Code Online (Sandbox Code Playgroud)

但这会导致错误......

Traceback (most recent call last):
  File "scripts/parse_coop_csv.py", line 30, in <module>
    for coop_type in coop_types:
  File "scripts/parse_coop_csv.py", line 25, in <lambda>
    lambda x: x.decode('utf-8','ignore').encode("utf-8"),
AttributeError: 'str' object has no attribute 'decode'
Run Code Online (Sandbox Code Playgroud)

如果您有一种从字符串中删除所有非 UTF8 字符的通用方法,那么这就是我所寻找的。

python encode decode utf-8 python-3.x

5
推荐指数
1
解决办法
8279
查看次数

将 Map 转换为 json 字符串 flutter

我是 dart 新手,尝试将 Map 转换为 sqflite 的 json 字符串,json.encoderjsonEncode不起作用。我尝试使用json_serializable但无法运行build_runner,用元和分析器进行了一系列操作。

转换变体时出现问题,应该如下所示:

"variants": {
    "iphone 6": {"1": "8", "2": "6"},
    "xiaomi mi6": {"1": "8", "3": "5"},
    "samsung A6": {"1": "8"}
   }
Run Code Online (Sandbox Code Playgroud)

它看起来如何:

 variants: {
    iphone 6: {1: 8, 2: 6},
    xiaomi mi6: {1: 8, 3: 5},
    samsung A6: {1: 8}
   }
Run Code Online (Sandbox Code Playgroud)

SQL 函数:

Future<void> addToCart(List<List<TextEditingController>> controllers, Item item) async {
     Map<String, Map<int, String>> resultMap = Map();
    var list = item.variants.values.toList();
    var models = item.variants.keys.toList(); …
Run Code Online (Sandbox Code Playgroud)

json dictionary encode dart flutter

5
推荐指数
2
解决办法
3万
查看次数