Sử dụng [sửa]UTF-16 được sử dụng cho văn bản trong API hệ điều hành Microsoft Windows 2000/XP/2003/Vista/7/8/CE. [11] Hệ thống Windows NT cũ (trước khi Windows 2000) chỉ hỗ trợ UCS-2. [12] trong Windows XP, không có điểm mã trên U + FFFF được bao gồm trong bất kỳ phông chữ chuyển giao với các cửa sổ cho ngôn ngữ châu Âu. [13] [14] tác phẩm và dữ liệu mạng có xu hướng là một kết hợp của UTF-16, UTF-8, và mã hóa byte di sản.IBM iSeries hệ thống chỉ định mã trang CCSID 13488 cho mã hóa, CCSID 1200 để mã hóa UTF-16, và CCSID 1208 cho UTF-8 mã hóa ký tự UCS-2. [15]UTF-16 được sử dụng bởi hệ điều hành Qualcomm BREW; môi trường .NET; và bộ công cụ Qt cross-nền tảng đồ họa widget.Hệ điều hành Symbian được sử dụng trong điện thoại di động Nokia S60 và điện thoại di động Sony Ericsson UIQ sử dụng UCS-2. điện thoại di động iPhone sử dụng UTF-16 cho dịch vụ tin nhắn ngắn thay vì UCS-2 được mô tả trong tiêu chuẩn 3GPP TS 23.038 (GSM) và IS-637 (CDMA). [16]Hệ thống tập tin Joliet, được sử dụng trong phương tiện truyền thông đĩa CD-ROM, mã hóa tên tập tin bằng cách sử dụng UCS-2BE (lên đến sáu mươi bốn Unicode ký tự cho tên tập tin).Môi trường ngôn ngữ Python chính thức chỉ sử dụng UCS-2 trong nội bộ kể từ phiên bản 2.0, nhưng các bộ giải mã UTF-8 để "Unicode" sản xuất chính xác UTF-16. Kể từ Python 2.2, "nhiều" xây dựng của Unicode được hỗ trợ sử dụng UTF-32 thay vào đó; [17] chúng chủ yếu được sử dụng trên Linux. Python 3.3 không bao giờ sử dụng UTF-16, thay vào đó chuỗi được lưu trữ trong một trong ASCII/Latin-1, UCS-2, và UTF-32, tùy thuộc vào những điểm mã đang trong chuỗi, với một phiên bản UTF-8 cũng bao gồm để lặp đi lặp lại chuyển đổi UTF-8 đang nhanh chóng. [18]Java được sử dụng UCS-2, và thêm UTF-16 ký tự bổ sung hỗ trợ J2SE 5.0.Trong nhiều ngôn ngữ trích dẫn dây cần một cú pháp mới cho trích dẫn các ký tự BMP, như cú pháp "uXXXX" một cách rõ ràng hạn chế bản thân để 4 chữ số hex. Phổ biến nhất (sử dụng C#, D và một số các ngôn ngữ khác) là sử dụng một-chữ 'U' với 8 chữ số hex chẳng hạn như "U0001D11E"[19] trong cụm từ Java 7 và ICU và Perl, cú pháp "x{1D11E}" phải được sử dụng. Trong nhiều trường hợp khác (chẳng hạn như Java bên ngoài của biểu thức thông thường) [20] cách duy nhất để có được nhân vật BMP là nhập nửa thay thế riêng, ví dụ: "uD834uDD1E" cho U + 1D11E.Những triển khai tất cả trở về số 16-bit mã đơn vị chứ không phải số điểm mã Unicode khi tương đương với strlen() được sử dụng trên của dây, và lập chỉ mục thành một chuỗi trả về các đơn vị được lập chỉ mục mã, không phải là mã được lập chỉ mục điểm, [21] [22] [23] điều này dẫn một số người yêu cầu bồi thường rằng UTF-16 không được hỗ trợ. Tuy nhiên, thuật ngữ "nhân vật" xác định và được sử dụng trong nhiều cách trong thuật ngữ Unicode, [24] do đó, một số rõ ràng là không thể và không có lý do để strlen để cố gắng để trở về bất kỳ giá trị như vậy. Hầu hết sự nhầm lẫn là do lỗi thời ASCII thời tài liệu hướng dẫn sử dụng thuật ngữ "nhân vật" khi một kích thước cố định "byte" hoặc "octet" được dự định
đang được dịch, vui lòng đợi..
