Articles of 非ASCII字符

Django:带有ASCII标头的Unicode文件名?

我有一个奇怪的编码文件的列表: 02 – Charlie, Woody and You/Study #22.mp3 ,我想这不是很糟糕,但有一些特定的字符,Django或nginx似乎是钩住了。 >>> test = u'02 – Charlie, Woody and You/Study #22.mp3' >>> test u'02 – Charlie, Woody and You\uff0fStudy #22.mp3' 我使用nginx作为反向代理连接到Django的内置web服务器(仍在开发阶段)和postgresql为我的数据库。 我的数据库和表都是en_US.UTF-8 ,我正在使用pgadmin3来查看我的django以外的表。 我的问题超出了我的标题,首先,我应该如何将可能存在的可怕文件名保存在我的数据库中? 我目前的方法是 'path': smart_unicode(path.lstrip(MUSIC_PATH)), 'filename': smart_unicode(file) 当我印出价值观的时候,他们确实表明u'whateverthecrap' 我不知道是否应该这样做,但假设现在我有问题试图吐出下载。 我的下载视图看起来像这样: def song_download(request, song_id): song = get_object_or_404(Song, pk=song_id) url = u'/static_music/%s/%s' % (song.path, song.filename) print url […]

将非标准字符写入Linux命令行

我遇到了一些问题。 为了做我正在尝试的,我需要能够input纯hex值到命令行的标准input(特别是在程序内部的gets()调用),而不使用IOredirect。 我通常使用ctrl + u +数字来input相当于input的hex值的ascii字符,但是我需要能够input空字符/退格/等,terminal要么忽略或解释为一个动作,而不是一个字符。 如果我使用pipe道或IOredirect,则在初始input和程序closures后无法与程序交互。 有没有人有任何想法? 我想可能的解决scheme是: find一种方法来手动input字符,并保留它们 find一种方法来input的字符不是Unicode或ASCII,但仍将被接受为字节信息 find一种方法来将inputredirect到从命令行解释的程序,然后以某种方式说服它将input的控制立即返回到命令行 第三个我什至不知道是可能的或有用的,因为我不完全确定为什么程序不工作,如果它从任何东西,但直接从命令行获取信息,我所知道的是,我必须手动input否则它不会运行。 有没有人有任何想法的3个选项,或任何其他你可以想到的? 我很难过 (哦,如果有人可以解释为什么有时Ctrl + U +数字输出与input数字完全不同的hex值的字符,我很好奇,但我不认为它会帮助我反正目前的问题。)

在shell中打印非ascii / unicode字符

我正在使用以下命令来search和打印非ASCII字符: grep –color -R -C 2 -P -n "[\x80-\xFF]" . 我得到的输出打印出非ASCII字符的行。 但是它不打印实际的Unicode字符。 有没有办法打印Unicode字符? 产量 ./test.yml-35- ./test.yml-36– name: Flush Handlers ./test.yml:37: meta: flush_handlers ./test.yml-38- —

sorting非字母字符

我在Linux中使用sort命令来sortingstring。 问题是我的string包含非字母字符,如!{%^$@#)( 。 我已经注意到,在Linux中sort忽略这些字符和仅基于字母sorting。 不过,我也想根据这些字符的ASCII码进行sorting。

奇怪的键值由ncurses打印

我正在用Linux上的ncurses库在C中做一个小程序。 我决定检查我用getch()函数收到的input,更具体地说,是退格键。 退格 ASCII十进制值是127 ,链接: 这里我决定打印我按下的键的数字十进制值,例如: 一个 – > 97 A – > 65 ] – > 93 … 后者是正确的。 但是,以下值不正确: 退格 – > 7(这是BELL) Supr – > 74(这是'J') 这里是testing代码: #include <curses.h> int main(int argc, char **argv) { char ch; int column,line; int s_column,s_line; initscr(); clear(); noecho(); raw(); keypad(stdscr,TRUE); printw("Type: \n> "); refresh(); getyx(stdscr,s_line,s_column); while((ch=getch())!='\n') […]

在控制台中打印一个实心方形

我需要使用我的C ++程序(1cm x 1cm大小)在Linuxterminal中打印一个填充正方形。 我试图使用ASCII 254(■),但在terminal打印为垃圾字符。 我不知道如何使用c + +打印扩展的ASCII字符。 以下是我尝试打印扩展ASCII的两种方法。 但不成功。 第一种方法 for(int i=128; i< 255; i++ ) { std::cout << static_cast<char>(i) << std::endl; } 第二种方法 unsigned char temp = 'A' for(int i=65; i< 255; i++ ) { std::cout << temp++ << std::endl; std::wcout << temp << std::endl; } 任何build议或替代的想法?

如何在Bash命令行中生成ASCII码2和3?

如果我按Ctrl + B应该给我的ASCII码2,但Ctrl + C将被解释为一个rest。 所以我想我必须redirect一个文件。我如何获得这些字符到一个文件?

仅使用k1,1执行sorting

假设您有一个未分类的文件,其中包含以下内容: identifier,count=Number identifier, extra information identifier, extra information … 我想对这个文件进行sorting,以便对于每个id,首先用count来写行,然后用额外的信息来写行。 我只能使用带有选项-k1,1的sortingunix命令,但我可以稍微改变行来得到这种sorting。 作为一个例子,采取 a,Count=1 a,giulio aa,Count=44 aa,tango aa,information ee,Count=2 bb,que f,Count=3 b,Count=23 bax,game f,ee c,Count=3 c,roma b,italy bax,Count=332 a,atlanta bb,Count=78 c,Count=3 输出应该是 a,Count=1 a,atlanta a,giulio aa,Count=44 aa,information aa,tango b,Count=23 b,italy bax,Count=332 bax,game bb,Count=78 bb,que c,Count=3 c,roma ee,Count=2 f,Count=3 f,ee 但是我得到: aa,Count=44 aa,information aa,tango a,atlanta a,Count=1 a,giulio […]

parsing包含不可打印的ASCII字符的文件

我有一个文件(可能是二进制文件),其中包含大部分不可打印的ASCII字符,如下面的八进制转储实用程序的输出所示。 od -a MyFile.log 0000000 cr nl esc a soh nul esc * soh L soh nul nul nul nul nul 0000020 nul soh etx etx etx soh nul nul nul nul nul nul nul nul nul nul 0000040 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul […]

如何在C语言中将非ASCII(土耳其语)字符压缩为1字节?

我有一个土耳其语单词列表。 我需要比较他们的长度。 但是由于一些土耳其文字符是非ASCII的 ,我无法正确比较它们。 非ASCII的土耳其字符包含2个字节。 例如: #include <stdio.h> #include <string.h> int main() { char s1[] = "ab"; char s2[] = "çş"; printf("%d\n", strlen(s1)); // it prints 2 printf("%d\n", strlen(s2)); // it prints 4 return 0; } 我的朋友说可以在Windows下用下面这行代码来做到这一点: system("chcp 1254"); 他说,它填补了特殊的土耳其字符扩展ASCII表。 但是它在Linux中不起作用。 有没有办法在Linux中做到这一点?