{"id":864,"date":"2013-11-04T23:17:30","date_gmt":"2013-11-04T14:17:30","guid":{"rendered":"http:\/\/43.203.250.216\/?p=864"},"modified":"2020-12-30T17:26:23","modified_gmt":"2020-12-30T08:26:23","slug":"jinja2%ec%9d%98-unicodedecodeerror","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=864","title":{"rendered":"Jinja2\uc758 UnicodeDecodeError"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">App engine\uc744 \uc774\uc6a9\ud558\ub294 project \uc911\uc5d0 Jinja2 template \ubd80\ubd84\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 UnicodeDecodeError\uac00 \ubc1c\uc0dd\ud558\ub294 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Traceback (most recent call last):\n  File \"&lt;&lt;APP_ENGINE>>\/lib\/webapp2-2.5.2\/webapp2.py\", line 1535, in __call__\n    rv = self.handle_exception(request, response, e)\n  File \"&lt;&lt;APP_ENGINE>>\/lib\/webapp2-2.5.2\/webapp2.py\", line 1529, in __call__\n    rv = self.router.dispatch(request, response)\n  File \"&lt;&lt;APP_ENGINE>>\/lib\/webapp2-2.5.2\/webapp2.py\", line 1278, in default_dispatcher\n    return route.handler_adapter(request, response)J\n  File \"&lt;&lt;APP_ENGINE>>\/lib\/webapp2-2.5.2\/webapp2.py\", line 1102, in __call__\n    return handler.dispatch()\n  File \"&lt;&lt;APP_ENGINE>>\/lib\/webapp2-2.5.2\/webapp2.py\", line 572, in dispatch\n    return self.handle_exception(e, self.app.debug)\n  File \"&lt;&lt;APP_ENGINE>>\/lib\/webapp2-2.5.2\/webapp2.py\", line 570, in dispatch\n    return method(*args, **kwargs)\n  File \"&lt;&lt;PROJECT_TOP>>\/main.py\", line 141, in get\n    r = t.render(events)\n  File \"&lt;&lt;APP_ENGINE>>\/lib\/jinja2-2.6\/jinja2\/environment.py\", line 894, in render\n    return self.environment.handle_exception(exc_info, True)\n  File \"&lt;&lt;PROJECT_TOP>>\/templates\/parser.html\", line 21, in top-level template code\n    &lt;td>{{titles[loop.index0]}}&lt;\/td>\nUnicodeDecodeError: 'ascii' codec can't decode byte 0xa1 in position 9: ordinal not in range(128)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"http:\/\/jinja.pocoo.org\/docs\/api\/#unicode\">Jinja2 web page\uc758 \uc124\uba85\ubb38\uc11c<\/a>\uc5d0 \ub530\ub974\uba74, Jinja2\ub294 \ub0b4\ubd80\uc801\uc73c\ub85c Unicode\ub97c \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 template\uc5d0\ub294 unicode object\ub97c \ub118\uaca8\uc8fc\uc5b4\uc57c \ud55c\ub2e4\uace0 \uc124\uba85\ud558\uace0 \uc788\ub294\ub370, \ub0b4\uac00 project\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 web page\ub294 &nbsp;cp949 encoding\uc744 \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c \uc774\uac83\uc740 Jinja2 template\uc73c\ub85c data\ub97c \ub118\uae30\uae30 \uc804\uc5d0 unicode()\ub97c \uc774\uc6a9\ud574\uc11c cpc949\ub97c uinicode\ub85c \ubcc0\ud658\ud55c \uac12\uc744 \ub118\uaca8\uc8fc\uba74 \ud574\uacb0\ud560 \uc218 \uc788\ub2e4. \ub2e4\uc74c\uc740 \uc2e4\uc81c\ub85c \uc218\uc815\ub41c code\ub85c cp949\ub85c encoding\ub41c \ubb38\uc790\uc5f4\uc744 &nbsp;unicode\ub85c \ubcc0\ud658\ud574\uc11c \ucd94\uac00\ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">titles.append(sch.mTitle) -> titles.append(unicode(sch.mTitle, 'cp949'))<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>App engine\uc744 \uc774\uc6a9\ud558\ub294 project \uc911\uc5d0 Jinja2 template \ubd80\ubd84\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 UnicodeDecodeError\uac00 \ubc1c\uc0dd\ud558\ub294 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. Jinja2 web page\uc758 \uc124\uba85\ubb38\uc11c\uc5d0 \ub530\ub974\uba74, Jinja2\ub294 \ub0b4\ubd80\uc801\uc73c\ub85c Unicode\ub97c \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 template\uc5d0\ub294 unicode object\ub97c \ub118\uaca8\uc8fc\uc5b4\uc57c \ud55c\ub2e4\uace0 \uc124\uba85\ud558\uace0 \uc788\ub294\ub370, \ub0b4\uac00 project\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 web page\ub294 &nbsp;cp949 encoding\uc744 \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud55c\ub2e4. \ub530\ub77c\uc11c \uc774\uac83\uc740 Jinja2 template\uc73c\ub85c data\ub97c \ub118\uae30\uae30 \uc804\uc5d0 unicode()\ub97c \uc774\uc6a9\ud574\uc11c cpc949\ub97c uinicode\ub85c \ubcc0\ud658\ud55c \uac12\uc744 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[5],"tags":[16,69,105],"class_list":["post-864","post","type-post","status-publish","format-standard","hentry","category-programming","tag-appengine","tag-jinja2","tag-python"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":563,"url":"https:\/\/litcoder.com\/?p=563","url_meta":{"origin":864,"position":0},"title":"OpenGrok \uc124\uce58","author":"litcoder","date":"2013\ub144 3\uc6d4 9\uc77c","format":false,"excerpt":"OpenGrok\uc744 \uc124\uce58\ud558\ub294 \uac00\uc7a5 \uac04\ub2e8\ud55c \ubc29\ubc95\uc740 tomcat5~6 \uc0ac\uc774\uc758 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud558\uace0, \uc124\uce58\ud558\ub294 \uc704\uce58\ub97c \/var\/opengrok \uc73c\ub85c \uc815\ud558\ub294 \uac83\uc774\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \ubcc4\ub3c4\uc758 \uc218\uc815\uc5c6\uc774 \uac70\uc758 \uadf8\ub300\ub85c OpenGrok\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. (OpenGrok \uc124\uce58 \ube68\ub9ac \ud558\uae30 \ucc38\uc870) \uc774 posting\uc5d0\uc11c\ub294 Source\ub97c <YOUR_SOURCE_REPOSITORY_TOP> \uacbd\ub85c \uc544\ub798\uc5d0 \uac01 project\ubcc4\ub85c \ub530\ub85c \ubcf4\uad00\ud558\uace0, <YOUR_HOME_DIRECTORY>\/opengrok \uacbd\ub85c \uc544\ub798\uc5d0 OpenGrok\uacfc \uad00\ub828\ub41c file\ub4e4\uc744 \ubcf4\uad00\ud558\ub294 \uc0c1\ud669\uc744 \uac00\uc815\ud558\uace0 \uc124\uba85\ud55c\ub2e4.\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"OpenGrok ScreenShot","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2013\/03\/Screenshot-from-2013-03-09-232044_opengrok-300x241.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1039,"url":"https:\/\/litcoder.com\/?p=1039","url_meta":{"origin":864,"position":1},"title":"Cygwin\uc5d0\uc11c Android systrace \uc2e4\ud589 \ubb38\uc81c","author":"litcoder","date":"2014\ub144 8\uc6d4 18\uc77c","format":false,"excerpt":"2014\ub144 8\uc6d4 \ud604\uc7ac, Cygwin\uc73c\ub85c systrace\ub97c \uc0ac\uc6a9\ud558\ub824\uace0 \ud558\uba74 zlib \uad00\ub828\ud55c error\uac00 \ub098\uba74\uc11c \ub3d9\uc791\ud558\uc9c0 \uc54a\ub294\ub2e4. $ python systrace.py -o output.html gfx input view wm am video hal dalvik capturing trace... done downloading trace... done Traceback (most recent call last): File \"systrace.py\", line 286, in <module> main() File \"systrace.py\", line 231, in main\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1489,"url":"https:\/\/litcoder.com\/?p=1489","url_meta":{"origin":864,"position":2},"title":"Android Studio\uc5d0\uc11c Googletest \uc0ac\uc6a9\uc744 \uc704\ud55c \uc124\uc815","author":"litcoder","date":"2016\ub144 7\uc6d4 1\uc77c","format":false,"excerpt":"Android Studio\ub294 \ub0b4 PC\uc5d0\uc11c \uc880 \ub290\ub9ac\uae34 \ud558\uc9c0\ub9cc, \ub2e4\ub978 IDE\ub4e4\uc5d0 \ube44\ud574\uc11c\ub294 Emacs key binding\uc774 \ube44\uad50\uc801 \uc798\ub418\uc5b4 \uc788\uc5b4\uc11c \ub9cc\uc871 \ud558\uba74\uc11c \uc870\uae08\uc529 \ubc30\uc6cc\uac00\uace0 \uc788\ub2e4. NDK\ub85c JNI\uc5d0\uc11c \ubd88\ub7ec\ub2e4 \uc4f8 native code\ub97c \uad6c\ud604\ud558\ub2e4 \ubcf4\ub2c8 Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 \ub9e4\ubc88 device\ub85c push \ud558\uace0 \uc2e4\ud589\ud558\ub294 \uacfc\uc815\uc774 \uaf64\ub098 \ubc88\uac70\ub85c\uc640\uc11c script\ub85c \ub9cc\ub4e4\uc5b4 \ubcf4\uc558\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 Android Studio\uc5d0\uc11c Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":970,"url":"https:\/\/litcoder.com\/?p=970","url_meta":{"origin":864,"position":3},"title":"[Tip] PyDev plugin \uc124\uce58\ud6c4 \ub3d9\uc791\ud558\uc9c0 \uc54a\uc744 \ub54c","author":"litcoder","date":"2014\ub144 1\uc6d4 23\uc77c","format":false,"excerpt":"Ubuntu\uc6a9 Eclipse\uc5d0 PyDev\ub97c \uc124\uce58\ud558\uace0 program\uc744 \uc7ac\uc2e4\ud589 \ud588\ub294\ub370\ub3c4 *.py \ud655\uc7a5\uc790\uac00 \uc778\uc2dd\ub418\uc9c0 \uc54a\uace0 \uc2e4\ud589\uacfc \ub514\ubc84\uae45 \uba54\ub274\uc5d0\ub3c4 \u00a0Python \ud56d\ubaa9\uc774 \ub098\ud0c0\ub098\uc9c0 \uc54a\ub294 \uac83\uc740 PyDev\uac00 3.0 \ubc84\uc804 \ubd80\ud130\ub294 Java7\ub97c \uc694\uad6c\ud558\uae30 \ub54c\ubb38\uc774\uc5c8\ub2e4. (\ucc38\uc870 \uae30\uc0ac) \uac19\uc740 \uc11c\ubc84\uc5d0\uc11c Android\ub97c build\ud558\uace0 \uc788\uc5b4\uc11c Oracle JDK version\uc744 \uc62c\ub9b4 \uc218\ub294 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uc606\uc5d0\uc11c \ub180\uace0 \uc788\ub358 Open JDK\uc758 version\uc744 7\ub85c \uc62c\ub824\uc11c \uc124\uc815\ud558\uae30\ub85c \ud588\ub2e4.\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3116,"url":"https:\/\/litcoder.com\/?p=3116","url_meta":{"origin":864,"position":4},"title":"CARLA client\ub97c build\ud574\uc57c \ud558\ub294\ub370 clang-8\uc774 \uc5c6\ub304\ub2e4.","author":"litcoder","date":"2022\ub144 7\uc6d4 27\uc77c","format":false,"excerpt":"2022\ub144 9\uc6d4 \ud604\uc7ac CARLA simulator\uc758 \ucd5c\uc2e0 \ubc84\uc804\uc778 0.9.13\uc73c\ub85c PythonAPI\ub97c \ube4c\ub4dc\ud558\ub824\uace0 \ud558\uba74 clang-8 version\uc744 \uc694\uad6c\ud558\ub294\ub370 Ubuntu 22.04\uc5d0\uc11c\ub294 clang-8\uc758 repository\ub97c \ucd94\uac00\ud558\uace0 \uc124\uce58 \uc2dc\ub3c4\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uc758\uc874\uc131 \uc624\ub958\uac00 \uc0dd\uae34\ub2e4. The following packages have unmet dependencies: clang-8 : Depends: libllvm8 (>= 1:8~svn298832-1~) but it is not going to be installed Depends: libstdc++-5-dev but it\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":878,"url":"https:\/\/litcoder.com\/?p=878","url_meta":{"origin":864,"position":5},"title":"App engine &#8211; \uc9c0\uc815\ud55c \ub2ec\uc758 google calendar event \uac00\uc838\uc624\uae30","author":"litcoder","date":"2013\ub144 11\uc6d4 7\uc77c","format":false,"excerpt":"Google calendar API \uc124\uba85\ubb38\uc11c\uc5d0\ub294 event list\ub97c \uac00\uc838\uc624\ub294 \ubc29\ubc95\uc774 \uc124\uba85\uacfc \ud568\uaed8 \uc608\uc81c code\uac00 \uc81c\uc2dc\ub418\uc5b4 \uc788\ub2e4. page_token = None while True: events = service.events().list(calendarId='primary', pageToken=page_token).execute() for event in events['items']: print event['summary'] page_token = events.get('nextPageToken') if not page_token: break \uc774 \ucf54\ub4dc\ub97c \uc218\ud589\ud558\uba74 \ub2ec\ub825\uc774 \uac00\uc9c0\uace0 \uc788\ub294 \ubaa8\ub4e0 event\ub4e4\uc744 \uac00\uc838\uc624\ub294\ub370, \uc774\uac83\uc744 \uc870\uae08 \uc218\uc815\ud574\uc11c \uc9c0\uc815\ub41c \ub2ec\uc5d0\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=864"}],"version-history":[{"count":1,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/864\/revisions"}],"predecessor-version":[{"id":2761,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/864\/revisions\/2761"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}