I'm using django 1.8, developing in windows7.
The system codec is 'gbk'.
When I call:
print(request.POST)
In my view function, I got this error:
UnicodeEncodeError at /mrp/list/item/purchase/0/
'gbk' codec can't encode character '\xbb' in position 206: illegal multibyte sequence
I notice that the debug information shows META['PYTHONIOENCODING'] = 'GBK'
But when I try to print the python encoding before the error code:
import sys
print(sys.getdefaultencoding())
I shows utf8
!
So why it is using 'GBK'? Where should I change that setting? I've been searching for the documents but with no luck.
Please help!
Variable Value
SYSTEMROOT
'C:\\Windows'
PATH_INFO
'/mrp/list/item/purchase/0/'
HOMEPATH
'\\Users\\Alfred'
WINDOWS_TRACING_LOGFILE
'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log'
HTTP_ACCEPT_LANGUAGE
'zh-CN,zh;q=0.8,en;q=0.6,ru;q=0.4,zh-TW;q=0.2'
DJANGO_SETTINGS_MODULE
'ecerp.settings'
SHIM_MCCOMPAT
'0x810000001'
USERDOMAIN
'Alfred-PC'
SERVER_NAME
'activate.adobe.com'
PROCESSOR_IDENTIFIER
'Intel64 Family 6 Model 58 Stepping 9, GenuineIntel'
WINDOWS_TRACING_FLAGS
'3'
FP_NO_HOST_CHECK
'NO'
wsgi.file_wrapper
''
QUERY_STRING
''
CLASSPATH
'.;C:\\Program Files\\Java\\jdk1.8.0_31\\lib;C:\\Program '
'Files\\Java\\jdk1.8.0_31\\lib\\tools.jar;d:\\java\\lib'
SERVER_PROTOCOL
'HTTP/1.1'
PYTHONIOENCODING
'GBK'
ALLUSERSPROFILE
'C:\\ProgramData'
USERNAME
'Alfred'
NUMBER_OF_PROCESSORS
'4'
PROGRAMFILES(X86)
'C:\\Program Files (x86)'
HTTP_PRAGMA
'no-cache'
PSMODULEPATH
'C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\'
TMP
'C:\\Users\\Alfred\\AppData\\Local\\Temp'
COMPUTERNAME
'ALFRED-PC'
SESSIONNAME
'Console'
USERPROFILE
'C:\\Users\\Alfred'
SERVER_PORT
'8000'
PROCESSOR_ARCHITECTURE
'AMD64'
REMOTE_HOST
''
HTTP_COOKIE
'verify_code=eW91Y2h1YW5n; sessionid=pncf4qix2xxjvkig3ek9v9oyvgb7aouc; '
'csrftoken=daIMsNDpBbireeQsbVGRJ6tMYijwxAu8'
wsgi.multithread
True
wsgi.input
<_io.BufferedReader name=908>
PATHEXT
'.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY'
PROGRAMW6432
'C:\\Program Files'
PYCHARM_HOSTED
'1'
COMMONPROGRAMW6432
'C:\\Program Files\\Common Files'
HTTP_ORIGIN
'http://localhost:8000'
WINDIR
'C:\\Windows'
GATEWAY_INTERFACE
'CGI/1.1'
PROGRAMDATA
'C:\\ProgramData'
wsgi.multiprocess
False
REQUEST_METHOD
'POST'
OS
'Windows_NT'
SERVER_SOFTWARE
'WSGIServer/0.2'
HTTP_CONNECTION
'keep-alive'
SYSTEMDRIVE
'C:'
PYTHONPATH
'D:\\app\\ecerp'
GRANDE
'C:\\Program Files (x86)\\Fuji Xerox\\DocuPrint SSW2\\SimpleMonitor for AP'
JAVA_HOME
'C:\\Program Files\\Java\\jdk1.8.0_31'
wsgi.run_once
False
HTTP_REFERER
'http://localhost:8000/mrp/list/item/purchase/0/'
COMMONPROGRAMFILES
'C:\\Program Files\\Common Files'
LOGONSERVER
'\\\\ALFRED-PC'
PUBLIC
'C:\\Users\\Public'
COMSPEC
'C:\\Windows\\system32\\cmd.exe'
HTTP_HOST
'localhost:8000'
TEMP
'C:\\Users\\Alfred\\AppData\\Local\\Temp'
wsgi.errors
<_io.TextIOWrapper name='<stderr>' mode='w' encoding='GBK'>
PROCESSOR_REVISION
'3a09'
COMMONPROGRAMFILES(X86)
'C:\\Program Files (x86)\\Common Files'
HTTP_CACHE_CONTROL
'no-cache'
REMOTE_ADDR
'127.0.0.1'
HTTP_ACCEPT
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
PROGRAMFILES
'C:\\Program Files'
HTTP_ACCEPT_ENCODING
'gzip, deflate'
CONTENT_LENGTH
'1266'
wsgi.url_scheme
'http'
HOMEDRIVE
'C:'
PROCESSOR_LEVEL
'6'
HTTP_USER_AGENT
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/41.0.2272.118 Safari/537.36'
RUN_MAIN
'true'
LOCALAPPDATA
'C:\\Users\\Alfred\\AppData\\Local'
#ENVTSLOGSSS2364
'3014800'
PYTHONUNBUFFERED
'1'
CSRF_COOKIE
'daIMsNDpBbireeQsbVGRJ6tMYijwxAu8'
CONTENT_TYPE
'application/x-www-form-urlencoded'
PATH
'C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files (x86)\\Intel\\iCLS '
'Client\\;C:\\Program Files\\Intel\\iCLS '
'Client\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program '
'Files (x86)\\Intel\\OpenCL SDK\\2.0\\bin\\x86;C:\\Program Files '
'(x86)\\Intel\\OpenCL SDK\\2.0\\bin\\x64;C:\\Program Files\\Intel\\Intel(R) '
'Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) '
'Management Engine Components\\IPT;C:\\Program Files (x86)\\Intel\\Intel(R) '
'Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) '
'Management Engine Components\\IPT;C:\\Program Files (x86)\\Bitvise SSH '
'Client;C:\\Python34;C:\\Python34\\Scripts;C:\\Dev-Cpp\\bin;C:\\Program Files '
'(x86)\\QuickTime\\QTSystem\\;C:\\Program '
'Files\\TortoiseGit\\bin;C:\\Python34\\Scripts;C:\\Program '
'Files\\nodejs;D:\\upupw\\MySQL\\bin;C:\\Users\\Alfred\\AppData\\Roaming\\npm;C:\\Program '
'Files\\Java\\jdk1.8.0_31\\bin;C:\\Development\\android-sdk\\platform-tools;C:\\Development\\android-sdk\\tools'
SCRIPT_NAME
''
wsgi.version
(1, 0)
APPDATA
'C:\\Users\\Alfred\\AppData\\Roaming'
Finally I found that was because of the wrong file encoding.
The newly updated Pycharm IDE Under Windows changed the default encoding.
So my new code files encoding is turned to be GBK, which should be utf8.
And I changed the IDE setting, change the file encoding, everything is well.