标签: encoding

byte []的byte.length()是最大大小还是实际大小?

我觉得我在这个问题上退了两步,但有些事情让我感到困惑.我正在通过TCP/IP和byte []进行一些通信.

所以我开始构建我的byte []数组,第三个字节需要byte []的长度.如果我这样声明我的字节;

byte[] bytesToSend = new byte[119];
Run Code Online (Sandbox Code Playgroud)

然后用数据填充前三个字节..

bytesToSend[0] = 0x40;
bytesToSend[1] = 0x40;
bytesToSend[2] = Encoding.ASCII.GetBytes(bytesToSend.Length.ToString())[0];
Run Code Online (Sandbox Code Playgroud)

最后只打印出第三个字节,其中应包含长度;

MessageBox.Show(BitConverter.ToString(bytesToSend));
Run Code Online (Sandbox Code Playgroud)

我应该期望它返回119的字节大小,或者这只是最大大小?目前它正在返回十六进制"0x31",据我所知,它不等于119或3.毫无疑问,我缺少一些简单/基本的东西,但是有人能指出我正确的方向吗?

c# encoding bytearray

0
推荐指数
2
解决办法
429
查看次数

如何从图像的nsdata最小化base64字符串的长度?

我将图像转换为NSData,NSData转换为base64string

NSData *imagedata = UIImageJPEGRepresentation(imageView.image, 0.1f);
NSString *c = [NSString base64StringFromData:imagedata];
Run Code Online (Sandbox Code Playgroud)

字符串转换的fn

+ (NSString*)base64forData:(NSData*)theData {

    const uint8_t* input = (const uint8_t*)[theData bytes];
    NSInteger length = [theData length];

    static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

    NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4];
    uint8_t* output = (uint8_t*)data.mutableBytes;

    NSInteger i;
    for (i=0; i < length; i += 3) {
        NSInteger value = 0;
        NSInteger j;
        for (j = i; j < (i + 3); j++) {
            value <<= 8;

            if (j …
Run Code Online (Sandbox Code Playgroud)

base64 encoding objective-c nsdata ios

0
推荐指数
1
解决办法
7576
查看次数

确保UTF-8编码的字符串适合2048字节

我正在编写一个C#/ WinForms应用程序,其中包含一个包含2,000行的DataGridView.我的用户会在这些行中输入字符串.字符串可以是任何语言,但最可能的两种语言是英语和阿拉伯语.我没有明确限制字符串中的最大字符数本身,但我所拥有的是每个字符串写入磁盘时存储的限制为2048字节.如果生成的字节数组小于2048字节,我需要用空字符填充它.我假设UTF-8可能是存储这些字符串的最有效编码?如果是这样,那么我认为在允许存储字符串之前我会做这样的事情:

byte[] stringAsBytes = System.Text.Encoding.UTF8.GetBytes(myString);
if (stringAsBytes.Length > 2048)
{
    // string is too long to be stored in 2048 bytes
}
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,因为UTF-8是一个可变长度编码,给定字符串中的最大字符数将取决于构成字符串语言的字符的代码点范围?如果这是正确的,我是否真的需要为每个按键操作执行类似上面的代码,以确定字符串何时超出最大存储大小?

c# string unicode encoding utf-8

0
推荐指数
1
解决办法
2398
查看次数

以2个步骤编码字符串(到ISO-8859-1然后到UTF-8)

我想我认为这更像是我正在寻找的问题.我希望至少

我在Java中声明了这个String

input = "||3.2|2013-01-25T17:24:00|ingreso|PAGO EN UNA SOLA EXHIBICION|6386.21|MXN|7408.00|No identificado|NAUCALPAN DE JUÁREZ, ESTADO DE MEXICO|CAOS640116HT5|OSCAR MARTIN CARRERA|CTO. ORADORES 33|33|CD. SATELITE|NAUCALPAN DE JUÁREZ|ESTADO DE MEXICO|MÉXICO|53100|CTO. ORADORES 33|33|CD. SATELITE|NAUCALPAN DE JUÁREZ|ESTADO DE MEXICO|MÉXICO|53100|Persona Física con Actividad Empresarial|BAÑ930616R66|BAÑOMOBIL, S.A. DE C.V.|Av. 1° de Mayo|197|San. Lorenzo|TLALNEPANTLA DE BAZ|ESTADO DE MEXICO|MÉXICO|54047|1|NO APLICA|Dominio .com|Dominio por 1 año www.sanitariosportatiles.com|586.21|586.21|1|NO APLICA|Hospedaje 2 Gb|Hospedaje 2 Gb por 1 año www.sanitariosportatiles.com|5800.00|5800.00|IVA|16.00|1021.79|1021.79||";
Run Code Online (Sandbox Code Playgroud)

是否可以将其转换为ISO-8859-1然后转换为UTF-8?首先将其转换为ISO-8859-1是没有意义的吗?

基本上,我需要的是在utf8字节中使用该字符串并且我不知道是否因为某些字符来自ISO-8859-1我必须首先将其转换为UTF-8或者什么是正确的实现它的程序.

java encoding utf-8 iso-8859-1

0
推荐指数
1
解决办法
813
查看次数

JavaScript中奇怪的意外标记ILLEGAL

我有一个语法错误,我无法解决.基于W3 jQuery学校,这应该没问题.有人可以帮忙吗?

<script type="text/javascript">
    jQuery(document).ready(function($) {
        $(“a”).click(function(){
            **Uncaught SyntaxError: Unexpected token ILLEGAL**
                $(#content).toggle(400);
            });
        });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript error-handling encoding

0
推荐指数
1
解决办法
726
查看次数

如何改变'\ x ??' 在python中unicode?

我有一个字符串:

\xe2\x80\x8e\xd7\x93\xd7\x9c\xd7\x99\xd7\xaa\xe2\x80\x8e
Run Code Online (Sandbox Code Playgroud)

想要使用python将其改为unicode

我怎么做?

python encoding

0
推荐指数
1
解决办法
610
查看次数

将serialport.readline()非ascii字符串转换为字节数组

我想使用serialport.readline(),因为它是一个阻塞调用,我得到的数据最后有0x0D 0x0A(CR LF).但是,我想要的是Hex String而不是Ascii表示.

例如,我与之通信的设备正在发送字节数组,如{0xff,0xff,0x45,0x0D,0x0A}.我想在我的程序中打印出来就像这样:0xff,0xff,0x45.Readline()请修剪LF和CR.

我虽然通过指定我想要读取的字节数来使用serialport.read(buff [] ...).但它不能很好地工作,因为如果我读得太快,一半的数组将是0x00,如果我读得太慢,那么com端口就会出现溢出.我不想丢失任何字节.

我试图将我从serialport.readline()获得的内容转换为字节数组,但我得到的十六进制字符串通常变为0x3f.代码是这样的:

var line = string.Join(",", mySerialPort.ReadLine().Select(c => ((Byte)c).ToString("X")).ToArray());
Run Code Online (Sandbox Code Playgroud)

我改变了几次编码(ASCII,UTF8,UNICODE),但仍然没有.

有没有办法将我从readline()获得的非Ascii字符串转换为字节数组?

c# string encoding serial-port

0
推荐指数
1
解决办法
3025
查看次数

C#文件路径编码和解码

我正在寻找一种简单的方法来编码/转义和解码/ unescape文件路径(文件路径中的非法字符"\/?:<>*| )

HttpUtiliy.UrlEncode做它的工作,除了它不编码*字符.

我所能找到的只是用正则表达式逃脱,或者只是替换非法的字符 _

我希望能够一致地编码/解码.

我想知道是否有预先定义的方法来做到这一点,或者我只需要编写一些代码进行编码,另一部分需要解码.

谢谢

c# encoding path decoding illegal-characters

0
推荐指数
1
解决办法
4982
查看次数

R摆脱单引号字符

我有一个我正在尝试处理的字符串向量,但我无法摆脱一些奇怪的字符.

当我读取csv文件时,我使用了以下行:

train <- read.csv(file="files/file1.csv", header = T, encoding = "UTF-8")
Run Code Online (Sandbox Code Playgroud)

我用这一行试图摆脱标点符号:

train$var1 <- gsub("[[:punct:]]", " ", train$var1)
Run Code Online (Sandbox Code Playgroud)

但是在运行之后的检查中,我仍然看到奇怪的单引号,'...'和黑点像密码隐藏字符.这是输入:

dput(unique(unlist(var1List))[c(30242:30246, 30561, 30484)])
c("opportunity…", "about…", "expected…", "reward…", "us…", "‘as", 
"<U+25CF>")
Run Code Online (Sandbox Code Playgroud)

有什么建议摆脱这些人物?

regex encoding r utf

0
推荐指数
1
解决办法
379
查看次数

基本的Python编码

我有一个简单的文件:

# -*- coding: utf-8 -*-

a = u'Alegría'
print a
print {'a': a}
Run Code Online (Sandbox Code Playgroud)

输出是:

Alegría
{'a': u'Alegr\xeda'}
Run Code Online (Sandbox Code Playgroud)

为什么我得到它而不是:

Alegría
{'a': u'Alegría'}
Run Code Online (Sandbox Code Playgroud)

提前致谢

python encoding

0
推荐指数
1
解决办法
59
查看次数