Xuất tiếng việt ra màn hình console bị lỗi
Khi làm việc với console trên Windows sẽ gặp vấn đề trong việc hiển thị tiếng Việt (hoặc Unicode nói chung) cũng như các ký tự đặc trưng đúng như mong muốn. Show Điều này do vấn đề về code page trên màn hình console không tương thích và cần thay đổi code page của màn hình console sang code page có thể hiển thị tiếng Việt. Code page là gì?Code page là một bảng dùng để tham khảo một tập ký tự, ví dụ:
Đặt vấn đềKhông thể hiển thị tiếng Việt trong consoleTheo mặc định từ đó các phần mềm sẽ dựa trên code page hiện tại của nó để hiển thị các ký tự phù hợp, Command Prompt là một trong những ứng dụng đó. Tuy nhiên theo mặc định thì Command Prompt có thể kích hoạt không đúng code page mong muốn nên không hiển thị được tiếng Việt. Ở phần 1, mình đã giới thiệu với các bạn về thư viện
1 và các hàm định dạng màn hình console. Trong bài viết này, mình sẽ nói về các hàm định dạng nội dung trong Console. Nếu các bạn đã xem rồi thì chúng ta bắt đầu nào! Hiển thị tiếng Việt và các ký tự đặc biệtConsole mặc định để Code page là 437 (OEM – United States), nó không hỗ trợ các ký tự đặc biệt cũng như tiếng Việt, nên nếu bạn hiển thị một chuỗi "Xin chào mọi người!" chẳng hạn, chắc chắn, nó sẽ bị lỗi font như hình dưới: Dành cho các bạn chưa biết, Code page (còn được gọi là bộ ký tự (Character Set) hay bộ mã hóa (Encoding)) là một bảng các giá trị trong đó mỗi ký tự dược gán một con số đại diện. Một code page cho phép một máy tính xác định các ký tự và hiển thị nó cách chính xác. Vậy để hiển thị tiếng Việt, ta phải chọn một code page phù hơp để thay thế cho 437. Unicode (uft-8) là một "ứng cứ viên sáng giá" đấy, với code page ID 65001, bộ mã này có thể hiển thị tới 1.112.064 ký tự. Cú pháp:
Tham số:
Demo:Thay đổi màu chữCú pháp:
Tham số:
0 = Black 8 = Gray 1 = Blue 9 = Light Blue 2 = Green 10 = Light Green 3 = Aqua 11 = Light Aqua 4 = Red 12 = Light Red 5 = Purple 13 = Light Purple 6 = Yellow 14 = Light Yellow 7 = White 15 = Bright White Từ 16 màu trên, ta có thể sử dụng công thức
6 để tạo ra các màu mới, trong đó
7 là mã màu nền,
8 là mã màu chữ. Ví dụ: 2 = 0 * 16 + 2 suy ra
9 thì màu nền là Black, màu chữ là Green; 80 = 5 * 16 + 0 suy ra
0 thì màu nền là Purple, màu chữ là Black. Theo công thức đó, ta có thể xây dựng một hàm như sau:
Demo:Nói chính xác hơn thì
1 là
2 mới đúng, nó không phải là màu nền cho cả console, mà chỉ những nơi có chữ. Để thay đổi màu nền cho cả console, các bạn phải dùng câu lệnh
3 (có thể mình sẽ nói về nó ở một bài viết sắp tới). Di chuyển con trỏ đến vị trí (x; y)Trước tiên, Console lấy gốc tọa độ là góc trên bên trái, trục x nằm ngang và trục y nằm dọc. Nó gần giống hệ tọa độ trong toán học, tuy nhiên khác một điều là chiều dương trục y là chiều đi xuống và cả hai trục đều không có chiều âm. Cú pháp:
Tham số:
Để sử dụng cách đơn giản, các bạn xây dựng hàm sau:
Khi GoTo đến một tọa độ và in gì đó, nếu tại đó đang có chữ thì nó sẽ in đè lên. Và vì nó không có tọa độ âm, nên nếu các bạn truyền vào giá trị âm cho
0 hoặc
1, nó
2. Demo:Thay đổi Console TitleMặc định file
3 cosole khi chạy Title sẽ là đường dẫn của file. Tuy nhiên ta hoàn toàn có thể thay đổi nó. Cú pháp:
Tham số:
Demo:Ẩn/Hiện con trỏĐể ẩn/hiện con trỏ chuột, các bạn sử dụng hàm
8. Cú pháp:
Tham số:
Trong đó,
2 là kích thước của con trỏ.
3 nếu
4 con trỏ sẽ được hiện, nếu
5 con trỏ sẽ ẩn, ta chỉ cần quan tâm đến tham số này. Các bạn có thể viết một hàm như sau:
Demo:Vô hiệu hóa Select (bôi đen text)Phải là "bôi trắng" chứ nhỉ :v Select thuộc chế độ Quick Edit, vậy để không cho người dùng kéo chuột để bôi đen chữ, thì ta Disable Quick Edit Mode thôi. Sử dụng hàm
6. Cú pháp:
Tham số:
Xây dựng hàm như sau:
0 Demo:KếtMình đã giới thiệu đến các bạn về
1 và một số hàm trong trong thư viện này, các bạn có thể sử dụng để vọc vạch làm vài game Console khi chán làm bài tập giải thuật nhé. Nếu thấy bài viết hay và giúp được gì đó cho các bạn hãy rate 5* và chia sẻ cho mọi người tham khảo. Nếu có thắc mắc hoặc thấy bài viết còn sai sót hãy để lại comment bên dưới :v |