30/09/2018, 20:36
Hỏi về wchar_t trong c! Gõ tiếng việt có dấu trong c
Mình muốn hỏi các bạn là làm sao để viết được dòng : “Xin chào các bạn!”, viết bằng C ghi dòng chữ đó vào tập tin Output.txt và được lưu dưới dạng UTF-16. Mình không biết trong C có hỗ trợ thư viện hay hàm gì cho việc viết tiếng việt nữa??? Mong các bạn giúp đỡ ạ!!! Cảm ơn mọi người rất nhiều!!!
Bài liên quan
bạn thử
_wfopen
xem: https://msdn.microsoft.com/en-us/library/yeby3zcb.aspxlưu dưới dạng UTF-16 ko đơn giản… vì mỗi ký tự có 2 (có khi là 4) bytes nên phải biết thứ tự byte nào trước byte nào sau nữa, trên Windows thì là little endian (LE) nghĩa là byte có giá trị nhỏ đứng trước byte có giá trị lớn, ngược lại là big endian (BE). Để biết file utf-16 là LE hay BE thì lại đẻ ra cái trò chèn thêm byte-order-mark (BOM)…
ngoài ra 1 khi đã đọc / in wide character ra stdin/stdout thì ko sử dụng
printf
,scanf
,gets
… được nữa mà tất cả phải xài phiên bản wide string tương ứng:wprintf
,wscanf
,getws
…FILE *
thì có lẽ vẫn đọc xen kẽchar
vàwchar_t
với các file khác nhau được.1 điểm lưu ý nữa là wide string/ wide char phải có thêm ký tự
L
phía trước, ví dụL'ắ'
là ký tựắ
,L"Văn"
là chuỗiVăn
.thử code này xem có chạy được ko
à quên là nếu compile với MinGW thì phải lưu file trên dưới định dạng utf-8 nếu ko sẽ ko compile được.
cảm ơn b nhé. code của b chạy được rồi.