Tôi đã phải vật lộn trong khi cài đặt Odoo 11 (phiên bản cộng đồng) trên Docker (Ubuntu 16.04), Show Lỗi tôi đang nhận được -
Không chỉ điều này, & nbsp; lệnh python in & nbsp; lệnh chấm dứt khi cố gắng in các ký tự unicode:print command terminates when trying to print Unicode characters:
Tôi thấy rằng Python 3 sử dụng unicode ở mọi nơi, điều này khiến việc sử dụng trong một môi trường tuyên bố không hỗ trợ Unicode, chẳng hạn như những hình ảnh Docker này. Sự cố này có thể dễ dàng khắc phục bằng cách thiết lập mã hóa Locale mặc định của hệ thống thành UTF-8, như: Bắt đầu thương mại điện tử không đầu của bạn ngay bây giờ. Đọc thêm Vấn đề: Nhấn lệnh ‘Locale, và kiểm tra đầu ra:: Hit command ‘locale’ , and check the output: LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL= Giải pháp: Thực hiện trực tiếp các lệnh này: locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-8 Hoặc, thêm các dòng này vào Dockerfile của bạn: # Set the locale RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 Bây giờ, nhấn lệnh ‘locale, và kiểm tra đầu ra: LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 Đó là nó, cảm ơn vì đã đọc blog này & nbsp; !!!
Mã nguồn: lib/locale.py Lib/locale.py Mô -đun Mô -đun Mô -đun Ngoại lệ được nâng lên khi địa phương được chuyển đến locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-81 không được công nhận. Locale.setLocale (danh mục, locale = none) ¶setlocale(category, locale=None)¶ Nếu Locale được đưa ra và không locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-82, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-81 sẽ sửa đổi cài đặt Locale cho danh mục. Các danh mục có sẵn được liệt kê trong mô tả dữ liệu dưới đây. Locale có thể là một chuỗi, hoặc có thể lặp lại hai chuỗi (mã ngôn ngữ và mã hóa). Nếu nó có một sự khác biệt, thì nó đã chuyển đổi thành một tên địa phương bằng cách sử dụng động cơ bí danh địa phương. Một chuỗi trống chỉ định cài đặt mặc định của người dùng. Nếu việc sửa đổi địa phương thất bại, ngoại lệ locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-84 sẽ được nâng lên. Nếu thành công, cài đặt địa phương mới được trả về. Nếu Locale bị bỏ qua hoặc locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-82, cài đặt hiện tại cho danh mục được trả về. locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-81 không an toàn cho hầu hết các hệ thống. Các ứng dụng thường bắt đầu bằng một cuộc gọi import locale locale.setlocale(locale.LC_ALL, '') Điều này đặt locale cho tất cả các danh mục thành cài đặt mặc định của người dùng (thường được chỉ định trong biến môi trường locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-87). Nếu địa điểm không thay đổi sau đó, việc sử dụng đa luồng sẽ không gây ra vấn đề. locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-87 environment variable). If the locale is not changed thereafter, using multithreading should not cause problems. Locale.localeconv () ¶localeconv()¶ Trả về cơ sở dữ liệu của các quy ước địa phương như một từ điển. Từ điển này có các chuỗi sau làm khóa:
Tất cả các giá trị số có thể được đặt thành # Set the locale RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-82 để chỉ ra rằng không có giá trị được chỉ định trong ngôn ngữ này. Các giá trị có thể cho 0 và 1 được đưa ra dưới đây.
Hàm đặt tạm thời địa phương 8 cho địa phươnglocale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-88 hoặc địa phương # Set the locale RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-85 nếu các địa phương là khác nhau và các chuỗi tiền tệ hoặc tiền tệ là không ASCII. Thay đổi tạm thời này ảnh hưởng đến các chủ đề khác. Đã thay đổi trong phiên bản 3.7: Hàm hiện đặt tạm thời địa phương 8 thành ngôn ngữ locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-88 locale in some cases. Locale.nl_langinfo (tùy chọn) ¶nl_langinfo(option)¶ Trả về một số thông tin cụ thể địa phương dưới dạng chuỗi. Hàm này không có sẵn trên tất cả các hệ thống và tập hợp các tùy chọn có thể cũng có thể thay đổi giữa các nền tảng. Các giá trị đối số có thể là các số, trong đó các hằng số biểu tượng có sẵn trong mô -đun địa phương. Hàm import locale locale.setlocale(locale.LC_ALL, '')3 chấp nhận một trong các khóa sau. Hầu hết các mô tả được lấy từ mô tả tương ứng trong thư viện GNU C. Locale.Codeset¶CODESET¶ Nhận một chuỗi có tên của mã hóa ký tự được sử dụng trong ngôn ngữ đã chọn. Locale.D_T_FMT¶D_T_FMT¶Nhận một chuỗi có thể được sử dụng làm chuỗi định dạng cho import locale locale.setlocale(locale.LC_ALL, '')4 để biểu diễn ngày và thời gian theo cách cụ thể của ngôn ngữ. Locale.D_FMT¶D_FMT¶ Nhận một chuỗi có thể được sử dụng làm chuỗi định dạng cho import locale locale.setlocale(locale.LC_ALL, '')4 để biểu diễn một ngày theo cách cụ thể của ngôn ngữ. Locale.T_FMT¶T_FMT¶ Nhận một chuỗi có thể được sử dụng làm chuỗi định dạng cho import locale locale.setlocale(locale.LC_ALL, '')4 để biểu diễn một thời gian theo cách cụ thể của ngôn ngữ. Locale.T_FMT_AMPM¶T_FMT_AMPM¶ Nhận một chuỗi định dạng cho import locale locale.setlocale(locale.LC_ALL, '')4 để biểu diễn thời gian ở định dạng AM/pm. DAY_1...DAY_7 ... DAY_7 Lấy tên của ngày thứ n trong tuần. Ghi chú Điều này theo Công ước Hoa Kỳ về import locale locale.setlocale(locale.LC_ALL, '')8 là Chủ nhật, chứ không phải Công ước quốc tế (ISO 8601) rằng thứ Hai là ngày đầu tiên của tuần. ABDAY_1...ABDAY_7 ... ABDAY_7 Nhận tên viết tắt của ngày thứ n trong tuần. MON_1...MON_12 ... MON_12Lấy tên của tháng n. ABMON_1...ABMON_12 ... ABMON_12Nhận tên viết tắt của tháng n. Locale.Radixchar¶RADIXCHAR¶Nhận ký tự radix (dấu chấm thập phân, dấu phẩy thập phân, v.v.). Locale.ThouseP¶THOUSEP¶Nhận ký tự phân tách cho hàng ngàn (nhóm ba chữ số). Locale.yesexpr¶YESEXPR¶Nhận một biểu thức thông thường có thể được sử dụng với hàm regex để nhận ra phản hồi tích cực cho câu hỏi có/không. Ghi chú Biểu thức nằm trong cú pháp phù hợp với hàm import locale locale.setlocale(locale.LC_ALL, '')9 từ thư viện C, có thể khác với cú pháp được sử dụng trong >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale0. Locale.NoExpr¶NOEXPR¶ Nhận một biểu thức thông thường có thể được sử dụng với hàm regex (3) để nhận ra phản hồi tiêu cực đối với câu hỏi có/không. Locale.crncystr¶CRNCYSTR¶Nhận biểu tượng tiền tệ, trước đó là--nếu biểu tượng sẽ xuất hiện trước giá trị, thì++nếu biểu tượng sẽ xuất hiện sau giá trị, hoặc. Nếu biểu tượng nên thay thế ký tự radix. Locale.era¶ERA¶Nhận một chuỗi đại diện cho ERA được sử dụng trong ngôn ngữ hiện tại. Hầu hết các địa phương không xác định giá trị này. Một ví dụ về một địa điểm xác định giá trị này là giá trị Nhật Bản. Tại Nhật Bản, đại diện truyền thống của ngày bao gồm tên của thời đại tương ứng với triều đại của hoàng đế. Thông thường không cần thiết phải sử dụng giá trị này trực tiếp. Chỉ định công cụ sửa đổi >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale1 trong các chuỗi định dạng của chúng khiến hàm import locale locale.setlocale(locale.LC_ALL, '')4 sử dụng thông tin này. Định dạng của chuỗi được trả về không được chỉ định và do đó bạn không nên cho rằng kiến thức về nó trên các hệ thống khác nhau. Locale.era_d_t_fmt¶ERA_D_T_FMT¶ Nhận một chuỗi định dạng cho import locale locale.setlocale(locale.LC_ALL, '')4 để biểu diễn ngày và thời gian theo cách dựa trên thời đại địa phương. Locale.era_d_fmt¶ERA_D_FMT¶ Nhận một chuỗi định dạng cho import locale locale.setlocale(locale.LC_ALL, '')4 để biểu diễn một ngày theo cách dựa trên thời đại địa phương. Locale.era_t_fmt¶ERA_T_FMT¶ Nhận một chuỗi định dạng cho import locale locale.setlocale(locale.LC_ALL, '')4 để thể hiện thời gian theo cách dựa trên thời đại địa phương. Locale.alt_digits¶ALT_DIGITS¶ Nhận biểu diễn tối đa 100 giá trị được sử dụng để biểu diễn các giá trị 0 đến 99. Locale.GetDefaultLocale ([Envvars]) ¶getdefaultlocale([envvars])¶Cố gắng xác định cài đặt địa phương mặc định và trả về chúng dưới dạng hình thức của mẫu >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale6. Theo Posix, một chương trình không được gọi là >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale7 chạy bằng địa phương >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale8 di động. Gọi >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale7 cho phép nó sử dụng ngôn ngữ mặc định như được xác định bởi biến locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-87. Vì chúng tôi không muốn can thiệp vào cài đặt địa phương hiện tại, do đó, chúng tôi mô phỏng hành vi theo cách được mô tả ở trên. locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-87 variable. Since we do not want to interfere with the current locale setting we thus emulate the behavior in the way described above. Để duy trì khả năng tương thích với các nền tảng khác, không chỉ biến locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-87 được kiểm tra, mà một danh sách các biến được đưa ra dưới dạng tham số Envvars. Đầu tiên được tìm thấy được xác định sẽ được sử dụng. Envvars mặc định cho đường dẫn tìm kiếm được sử dụng trong GNU getText; Nó phải luôn chứa tên biến locale 2. Đường dẫn tìm kiếm GNU GetText chứa locale 3, locale 4, locale 2 và locale 6, theo thứ tự đó.locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-87 variable is tested, but a list of variables given as envvars parameter. The first found to be defined will be used. envvars defaults to the search path used in GNU gettext; it must always contain the variable name locale 2. The GNU gettext search path contains locale 3, locale 4, locale 2 and locale 6, in that order.Ngoại trừ mã >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale8, mã ngôn ngữ tương ứng với RFC 1766. Mã ngôn ngữ và mã hóa có thể là locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-82 nếu giá trị của chúng không thể được xác định.RFC 1766. language code and encoding may be locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-82 if their values cannot be determined. Không dùng nữa kể từ phiên bản 3.11, sẽ bị xóa trong phiên bản 3.13. Locale.getLocale (Thể loại = LC_CTYPE) ¶getlocale(category=LC_CTYPE)¶Trả về cài đặt hiện tại cho danh mục Locale đã cho là chuỗi chứa mã ngôn ngữ, mã hóa. Danh mục có thể là một trong các giá trị Ngoại trừ mã >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale8, mã ngôn ngữ tương ứng với RFC 1766. Mã ngôn ngữ và mã hóa có thể là locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-82 nếu giá trị của chúng không thể được xác định.RFC 1766. language code and encoding may be locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-82 if their values cannot be determined. Không dùng nữa kể từ phiên bản 3.11, sẽ bị xóa trong phiên bản 3.13.getpreferredencoding(do_setlocale=True)¶ Locale.getLocale (Thể loại = LC_CTYPE) ¶locale encoding used for text data, according to user preferences. User preferences are expressed differently on different systems, and might not be available programmatically on some systems, so this function only returns a guess. Trả về cài đặt hiện tại cho danh mục Locale đã cho là chuỗi chứa mã ngôn ngữ, mã hóa. Danh mục có thể là một trong các giá trị locale.getpreferredencoding (do_setlocale = true) ¶Python UTF-8 Mode is enabled, always return Trả về mã hóa Locale được sử dụng cho dữ liệu văn bản, theo sở thích của người dùng. Tùy chọn người dùng được thể hiện khác nhau trên các hệ thống khác nhau và có thể không có sẵn lập trình trên một số hệ thống, vì vậy chức năng này chỉ trả về dự đoán.Python preinitialization configures the LC_CTYPE locale. See also the filesystem encoding and error handler. Trên một số hệ thống, cần phải gọi locale 6, mã hóa locale và đối số DO_SetLocale bị bỏ qua.getencoding()¶Các tiền đề Python định cấu hình địa phương LC_CTYPE. Xem thêm mã hóa hệ thống tập tin và xử lý lỗi.locale encoding:
Các tiền đề Python định cấu hình địa phương LC_CTYPE. Xem thêm mã hóa hệ thống tập tin và xử lý lỗi.Python preinitialization configures the LC_CTYPE locale. See also the filesystem encoding and error handler. Hàm này tương tự như Mới trong phiên bản 3.11. Locale.Normalize (LocalEname) ¶normalize(localename)¶Trả về một mã địa phương được chuẩn hóa cho tên địa phương đã cho. Mã địa phương được trả lại được định dạng để sử dụng với locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-81. Nếu chuẩn hóa thất bại, tên ban đầu được trả về không thay đổi. Nếu mã hóa đã cho không được biết, hàm mặc định là mã hóa mặc định cho mã locale giống như locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-81. Locale.ResetLocale (Thể loại = LC_ALL) ¶resetlocale(category=LC_ALL)¶ Đặt Locale cho danh mục thành cài đặt mặc định. Cài đặt mặc định được xác định bằng cách gọi Không dùng nữa kể từ phiên bản 3.11, sẽ bị xóa trong phiên bản 3.13. Locale.strcoll (String1, String2) ¶strcoll(string1, string2)¶So sánh hai chuỗi theo cài đặt # Set the locale RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-83, tùy thuộc vào việc String1 đối chiếu trước hay sau chuỗi2 hay bằng với nó. Locale.strxfrm (Chuỗi) ¶strxfrm(string)¶ Chuyển đổi một chuỗi thành một chuỗi có thể được sử dụng trong các so sánh nhận biết địa phương. Ví dụ, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-800. Hàm này có thể được sử dụng khi cùng một chuỗi được so sánh nhiều lần, ví dụ: Khi đối chiếu một chuỗi các chuỗi. locale.format_string (định dạng, val, nhóm = false, tiền tệ = false) ¶format_string(format, val, grouping=False, monetary=False)¶ Định dạng một số Val theo cài đặt locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-88 hiện tại. Định dạng tuân theo các quy ước của toán tử locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-802. Đối với các giá trị điểm nổi, điểm thập phân được sửa đổi nếu thích hợp. Nếu nhóm là đúng, cũng tính đến nhóm. Nếu tiền tệ là đúng, việc chuyển đổi sử dụng các chuỗi hàng ngàn tiền tệ và chuỗi nhóm. Các quy trình định dạng các nhà xác định như trong locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-803, nhưng tính đến các cài đặt địa phương hiện tại. Thay đổi trong phiên bản 3.7: Tham số từ khóa tiền tệ đã được thêm vào.The monetary keyword parameter was added. locale.format (định dạng, val, nhóm = false, tiền tệ = false) ¶format(format, val, grouping=False, monetary=False)¶Xin lưu ý rằng chức năng này hoạt động như locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-804 nhưng sẽ chỉ hoạt động cho chính xác một nhà xác định locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-805. Ví dụ, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-806 và locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-807 đều là các nhà xác định hợp lệ, nhưng locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-808 thì không. Đối với toàn bộ chuỗi định dạng, sử dụng locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-804. Locale.Currency (Val, Symbol = true, nhóm = false, international = false) ¶currency(val, symbol=True, grouping=False, international=False)¶ Định dạng một số Val theo cài đặt # Set the locale RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-85 hiện tại. Chuỗi được trả về bao gồm ký hiệu tiền tệ nếu biểu tượng là đúng, đó là mặc định. Nếu nhóm là đúng (không phải là mặc định), nhóm được thực hiện với giá trị. Nếu quốc tế là đúng (không phải là mặc định), biểu tượng tiền tệ quốc tế được sử dụng. Lưu ý rằng chức năng này sẽ không hoạt động với ngôn ngữ ‘C, vì vậy bạn phải đặt một ngôn ngữ qua locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-81 trước. Locale.str (Float) ¶str(float)¶ Các định dạng một số điểm nổi sử dụng cùng định dạng với hàm tích hợp locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-812, nhưng tính đến điểm thập phân. locale.delocalize (chuỗi) ¶delocalize(string)¶ Chuyển đổi một chuỗi thành một chuỗi số được chuẩn hóa, theo cài đặt locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-88. Mới trong phiên bản 3.5. locale.locize (chuỗi, nhóm = false, tiền tệ = false) ¶localize(string, grouping=False, monetary=False)¶Chuyển đổi một chuỗi số được chuẩn hóa thành một chuỗi được định dạng theo cài đặt locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-88. Mới trong phiên bản 3.10. Locale.atof (String, func = float) ¶atof(string, func=float)¶Chuyển đổi một chuỗi thành một số, theo cài đặt locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-88, bằng cách gọi func về kết quả gọi locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-816 trên chuỗi. Locale.atoi (Chuỗi) ¶atoi(string)¶ Chuyển đổi một chuỗi thành một số nguyên, theo các quy ước locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-88. Locale.lc_ctype¶LC_CTYPE¶ Danh mục địa phương cho các hàm loại ký tự. Tùy thuộc vào cài đặt của danh mục này, các chức năng của mô -đun locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-818 xử lý trường hợp thay đổi hành vi của chúng. Locale.lc_collate¶LC_COLLATE¶ Thể loại địa phương để phân loại chuỗi. Các chức năng locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-819 và locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-820 của mô -đun locale bị ảnh hưởng.
Locale.lc_time¶LC_TIME¶Thể loại địa phương cho định dạng thời gian. Hàm import locale locale.setlocale(locale.LC_ALL, '')4 tuân theo các quy ước này. Locale.lc_monetary¶LC_MONETARY¶ Thể loại địa phương để định dạng các giá trị tiền tệ. Các tùy chọn có sẵn có sẵn từ chức năng locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-823. Locale.LC_Messages¶LC_MESSAGES¶ Danh mục địa phương cho hiển thị tin nhắn. Python hiện không hỗ trợ các tin nhắn nhận biết địa phương cụ thể của ứng dụng. Các tin nhắn được hiển thị bởi hệ điều hành, giống như các tin nhắn được trả về bởi locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-824 có thể bị ảnh hưởng bởi danh mục này. Locale.lc_numeric¶LC_NUMERIC¶ Danh mục địa phương để định dạng số. Các hàm locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-825, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-826, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-827 và locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-828 của mô -đun locale bị ảnh hưởng bởi danh mục đó. Tất cả các hoạt động định dạng số khác không bị ảnh hưởng. Locale.lc_all¶LC_ALL¶Kết hợp tất cả các cài đặt địa phương. Nếu cờ này được sử dụng khi địa điểm được thay đổi, hãy đặt địa điểm cho tất cả các danh mục được thử. Nếu điều đó thất bại cho bất kỳ danh mục nào, không có danh mục nào được thay đổi. Khi ngôn ngữ được truy xuất bằng cờ này, một chuỗi chỉ ra cài đặt cho tất cả các danh mục được trả về. Chuỗi này sau đó có thể được sử dụng để khôi phục cài đặt. Locale.char_max¶CHAR_MAX¶Đây là một hằng số tượng trưng được sử dụng cho các giá trị khác nhau được trả về bởi locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-823. Example: >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale Bối cảnh, chi tiết, gợi ý, lời khuyên và cảnh báoTiêu chuẩn C định nghĩa Locale là một thuộc tính toàn chương trình có thể tương đối tốn kém để thay đổi. Trên hết, một số triển khai bị phá vỡ theo cách mà các thay đổi địa phương thường xuyên có thể gây ra các bãi rác lõi. Điều này làm cho địa điểm hơi đau đớn khi sử dụng chính xác. Ban đầu, khi một chương trình được bắt đầu, ngôn ngữ là địa phương locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-831, bất kể người dùng ưa thích là địa phương là gì. Có một ngoại lệ: danh mục 8 được thay đổi khi khởi động để đặt mã hóa ngôn ngữ hiện tại cho mã hóa ngôn ngữ ưa thích của người dùng. Chương trình phải nói rõ ràng rằng nó muốn cài đặt địa phương ưa thích của người dùng cho các danh mục khác bằng cách gọi >>> import locale >>> loc = locale.getlocale() # get current locale # use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE') >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale >>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale >>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale7. Nói chung là một ý tưởng tồi để gọi locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-81 trong một số thói quen thư viện, vì là một tác dụng phụ, nó ảnh hưởng đến toàn bộ chương trình. Tiết kiệm và khôi phục nó gần như xấu: nó đắt tiền và ảnh hưởng đến các chủ đề khác xảy ra trước khi cài đặt đã được khôi phục. Nếu, khi mã hóa một mô -đun để sử dụng chung, bạn cần một phiên bản độc lập địa phương của một hoạt động bị ảnh hưởng bởi locale (chẳng hạn như các định dạng nhất định được sử dụng với import locale locale.setlocale(locale.LC_ALL, '')4), bạn sẽ phải tìm cách thực hiện mà không cần sử dụng thư viện tiêu chuẩn lịch trình. Thậm chí tốt hơn là thuyết phục bản thân rằng sử dụng cài đặt địa phương là ổn. Chỉ như là phương sách cuối cùng, bạn mới ghi nhận rằng mô-đun của bạn không tương thích với các cài đặt địa phương không phải là -____ 131. Cách duy nhất để thực hiện các hoạt động số theo ngôn ngữ là sử dụng các hàm đặc biệt được xác định bởi mô -đun này: locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-827, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-826, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-825, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-828. Không có cách nào để thực hiện chuyển đổi trường hợp và phân loại ký tự theo địa phương. Đối với các chuỗi văn bản (unicode), chúng chỉ được thực hiện theo giá trị ký tự, trong khi đối với chuỗi byte, các chuyển đổi và phân loại được thực hiện theo giá trị ASCII của byte và byte có bit cao được đặt (tức là, không ) không bao giờ được chuyển đổi hoặc được coi là một phần của một lớp ký tự như chữ cái hoặc khoảng trắng. Cho các nhà văn và chương trình mở rộng nhúng Python¶Các mô -đun mở rộng không bao giờ nên gọi locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-81, ngoại trừ để tìm hiểu địa phương hiện tại là gì. Nhưng vì giá trị trả lại chỉ có thể được sử dụng một cách xác định để khôi phục nó, điều đó không hữu ích lắm (ngoại trừ có lẽ để tìm hiểu xem địa phương có phải là locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-831). Khi mã Python sử dụng mô -đun locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-845 và đảm bảo rằng mô-đun _locale không thể truy cập được một thư viện được chia sẻ.Truy cập vào Danh mục Tin nhắnlocale.gettext (msg) ¶ Locale.DgetText (tên miền, tin nhắn) ¶ Locale.DcgetText (tên miền, tin nhắn, danh mục) ¶ Locale.TextDomain (miền)gettext(msg)¶ locale.dgettext(domain, msg)¶ locale.dcgettext(domain, msg, category)¶ locale.textdomain(domain)¶ locale.bindtextdomain(domain, dir)¶Mô -đun Locale hiển thị giao diện GetText thư viện C trên các hệ thống cung cấp giao diện này. Nó bao gồm các chức năng locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-847, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-848, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-849, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-850, locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-851 và locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-852. Chúng tương tự như các chức năng tương tự trong mô -đun locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-853, nhưng sử dụng định dạng nhị phân của thư viện C cho các danh mục tin nhắn và các thuật toán tìm kiếm thư viện C để định vị các danh mục tin nhắn. Các ứng dụng Python thường không cần phải gọi các chức năng này và nên sử dụng locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-853 thay thế. Một ngoại lệ đã biết đối với quy tắc này là các ứng dụng liên kết với các thư viện C bổ sung để gọi nội bộ locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-847 hoặc locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-849. Đối với các ứng dụng này, có thể cần phải liên kết miền văn bản, để các thư viện có thể định vị đúng danh mục tin nhắn của họ. Làm cách nào để thay đổi mã hóa địa phương của tôi?Bảng điều khiển -> Đồng hồ và Vùng -> Vùng -> Hành chính -> Thay đổi hệ thống Locale -> Kiểm tra Beta: Sử dụng Unicode UTF -8 ... Sau đó và khởi động lại, tôi đã xác nhận địa phương đó. ... After this, and a reboot, I confirmed that locale.
Làm cách nào để thay đổi địa điểm trong Python?Cách phổ biến nhất để cho phép người dùng thay đổi cài đặt ngôn ngữ cho một ứng dụng là thông qua biến môi trường (LC_ALL, LC_CTYPE, LANG hoặc ngôn ngữ, tùy thuộc vào nền tảng).Sau đó, ứng dụng gọi setLocale () không có giá trị mã hóa cứng và giá trị môi trường được sử dụng.through an environment variable ( LC_ALL , LC_CTYPE , LANG , or LANGUAGE , depending on the platform). The application then calls setlocale() without a hard-coded value, and the environment value is used.
Locale UTF8 là gì?En_us.Địa điểm UTF-8 là một địa phương Unicode quan trọng trong sản phẩm Solaris 8.Nó hỗ trợ và cung cấp khả năng xử lý multiscript bằng cách sử dụng UTF-8 làm mã của nó.Nó có thể nhập và đầu ra văn bản trong nhiều tập lệnh.Đây là địa điểm đầu tiên có khả năng này trong môi trường vận hành Solaris.a significant Unicode locale in the Solaris 8 product. It supports and provides multiscript processing capability by using UTF-8 as its codeset. It can input and output text in multiple scripts. This was the first locale with this capability in the Solaris operating environment.
Thư viện địa phương trong Python là gì?Mô -đun địa phương của Python là một phần của thư viện tiêu chuẩn để quốc tế hóa (I18N) và bản địa hóa (L10N) trong Python.Mô -đun địa phương cho phép các nhà phát triển đối phó với một số vấn đề văn hóa trong các ứng dụng của họ.part of the standard library for internationalization (i18n) and localization (l10n) in Python. The locale module allows developers to deal with certain cultural issues in their applications. |