我有一个奇怪的编码文件的列表: 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 […]
浏览器URL默认将unicode字符编码为%##。 不过,我可以通过CURL向http://localhost:8080/与一个请求,nginx将path看作“ 与 ”。 这怎么可能? 那么Nginx是否允许任意的unicode呢? 例如,使用这个configuration我可以设置一个额外的头部来查看nginx看到了什么: location ~* "(*UTF8)([^\w/\.\-\\% ])" { add_header "response" $1; return 200; } 请求: * Connected to localhost (127.0.0.1) port 8080 (#0) > GET /与 HTTP/1.1 > User-Agent: curl/7.30.0 > Host: localhost:8080 > Accept: */* > < HTTP/1.1 200 OK * Server nginx/1.4.6 (Ubuntu) is not blacklisted < Server: nginx/1.4.6 […]
做经典的等价的Unicodestring整理平等? 有时。 #include <iostream> #include <cstring> #include <clocale> int main() { std::setlocale(LC_COLLATE, "en_US.UTF-8"); if (std::strcoll("\xc3\xa9", "e\xcc\x81")) std::cout << "FAIL: No Unicode normalization here" << std::endl; else std::cout << "WIN: Unicode normalization is performed" << std::endl; } 这个程序在我的Cygwin化的Windows机器上得到一个WIN,在我能得到的每一个Linux系统上都失败。 这是预期的行为? 有没有生产WIN的Linux系统? 那么Mac OS X呢? FreeBSD的? 我知道我可以规范化,并与第三方库进行规范对等。 我对UTF-8语言环境的标准sorting规则感兴趣。 这个问题受到这个启发。
我遇到了一些问题。 为了做我正在尝试的,我需要能够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值的字符,我很好奇,但我不认为它会帮助我反正目前的问题。)
我正在寻找方法将unicode codepoints转换为utf8。 到目前为止,我已经学会了我可以手动或使用iconv。 我也认为wctomb会起作用,但它不会: #include <stdio.h> #include <stdlib.h> #include <arpa/inet.h> #define CENTER_UTF8 "\xf0\x9d\x8c\x86" #define CENTER_UNICODE 0x1D306 int main(int argc, char** argv) { puts(CENTER_UTF8); //OK static char buf[10]; int r; #define WCTOMB(What) \ wctomb(NULL,0); \ r=wctomb(buf,What); \ puts(buf); \ printf("r=%d\n", r); //Either one fails with -1 WCTOMB(CENTER_UNICODE); WCTOMB(htonl(CENTER_UNICODE)); } 可能有人请向我解释为什么wctomb不会将unicode代码转换为utf8。 我在Linux上使用utf8语言环境。
我想制作一个程序来模拟按键。 我认为我大部分都做完了,但是我做了一些错误,我猜是因为它没有做我期望的事情。 我举了一个小例子来说明这个问题。 主要的问题是,如果我想要生成大写字母,它不适用于像'zZ'这样'zZ'string。 它只产生小写字母'zz' 。 虽然符号像'! $ & _ >' '! $ & _ >'等工作正常(这需要我的德国键盘布局),甚至像”💣“多字节的。 我正在做的是这样的: 前言: 所以基本上模仿按键的主要问题首先是从用户到用户的布局,最重要的是修改键。 所以,如果你走上天真的路线,用XStringToKeysym()得到一个keysym和XKeysymToKeycode()并从那个keysym中获取一个XKeysymToKeycode()并且它不像大多数新手所期望的那样工作(像我一样)。 这里的问题是,多个keysyms被映射到相同的keycode。 就像'a'和'A'的keysysm被映射到相同的键码,因为它们在键盘上的相同物理button上,并且链接到该键码。 所以,如果你走上面的路线,你会得到相同的键码,虽然keysyms是不同的,但映射到相同的button/键码。 而且通常没有办法解决这个问题,因为不清楚'A'是如何存在的。 shift + a或caps + a,或者你有一个花式键盘,上面有一个'a'和'A'button。 另一个问题是我如何发出按键甚至没有运行该应用程序的人的键盘按键。 如果我想input'Ä' (德语变音符号),就像在英文版面上按什么键。 这是行不通的,因为XKeysymToKeycode()不会为此返回一个合适的键码,因为这个布局没有键盘映射。 我的方法: 我正在绑定什么来绕过这个是find一个没有被使用的键码。 你有255-8的keycodes在你的处置,但一个普通的键盘上只有~110键,所以通常还有一些空间。 我正试图find在当前布局未映射的键码之一,并使用它来分配我自己的键盘。 然后我从我的字符得到一个keysym我迭代了我的string,并将其传递给XStringToKeysym() ,这给了我适当的keysym。 在大多数情况下,“💣”不映射到我知道的任何键盘布局。 所以我把它映射到未使用的键码,并用XTestFakeKeyEvent()按下并重复该string中的每个字符。 这可以与所有花式字形人们可以想到的,但它不能用简单的字母,我真的不知道为什么:(在我的debugging会话中,键盘和键码似乎是正确的,只是XTestFakeKeyEvent()不做在这种情况下,我可能会把事情搞砸,但我不确定这里的问题是什么,我希望有人有一个好主意,可以帮助我find一个可行的解决scheme。 我只是在strings数组中使用这个unicode符号,因为我不想在这里的例子中处理这个。 假设有任何inputstring产生的代码。 请注意,下面的代码可能会破坏你的键盘映射,使你无法键入和使用键盘了,需要重新启动你的X-Server / PC …我希望它不处于当前状态在这里工作很好)只要知道如果你拨弄的代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include […]
Java 1.5,Linux 我有一个屏幕,其中包含不同的textareas和文本字段。 我已经访问了应用程序框架,但没有访问框架内的组件,因为我只获得一个接口的实现。 当我尝试添加德语变音符号时,我在文本组件中看到一个矩形,因为该字符不受支持。 在linux下,我必须设置哪种字体或哪种系统属性来支持“元音变音”。 在Windows上,字符显示正确。
我正在研究一个由SWI Prolog文本分析器组成的Prolog大学,它非常简单地做了以下几件事: 阅读包含一些文本的.txtinput文件,并将该文本放入我称之为ASCII字符的列表中 : dataggare.txt 对这个原始的ASCII字符列表进行一些操作,并将其保存在一个名为System.txt的新文件中 最后将新修改的System.txt文件与另一个名为oracolo.txt的文件进行比较 (表示如果所有操作都成功完成, System.txt应该是什么样子 ), FMeasure值表示多lessSystem.txt看起来像oracolo.txt一样,但这是现在不重要 当我将新的System.txt文件与oracolo.txt文件进行比较时出现此问题,并且仅在使用Linux运行程序时才出现此问题(如果我在Windows上运行,则没有问题) 所以问题是,当我执行以下查询时,我有一系列有关oracolo.txt文件编码的警告 [debug] ?- tagConfronto('dataggare.txt', 'oracolo.txt', FMeasure). Warning: oracolo.txt:1:422: Illegal UTF-8 continuation Warning: oracolo.txt:2:77: Illegal UTF-8 continuation Warning: oracolo.txt:2:129: Illegal UTF-8 continuation Warning: oracolo.txt:3:31: Illegal UTF-8 continuation Warning: oracolo.txt:3:71: Illegal UTF-8 continuation Warning: oracolo.txt:3:199: Illegal UTF-8 start Warning: oracolo.txt:3:258: Illegal UTF-8 continuation ………… Warning: […]
我正在使用以下命令来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- —
我想用ImageMagick渲染小的单个字符图像。 我这样称呼它: echo -n "\u1407" | convert -background black -fill white \ -font /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf -pointsize 12 label:@- gif:1407.gif 当我刚刚在我的terminal上回显,有这个字体(DejaVu-Sans-Mono)的时候,我看到这个三angular形: ᐇ但是在GIF中只是一个问号。 没有特别的标记,只是一个问号。 它适用于其他angular色,比如这些特殊的angular色: ⟨⟩在27e8和27e9 ,但是下一对不再工作。 我需要做什么来启用字体提供的所有字符? 我设置了错误的字体吗? 我的发行版是LMDE。