2009-10-08 29 views

Trả lời

2

Hãy thử điều này:

  • thay vì sử dụng 'é' '\ u00E9'
  • thay vì 'a' sử dụng '\ u00E2'
  • thay vì sử dụng 'e' '\ u00E8'

, vv

+0

Tôi có chuỗi bắt nguồn từ oracle, trong một thời gian ngắn tôi muốn thay thế tất cả các ký tự đặc biệt là nó có thể? là có api cho nó? – Garudadwajan

+0

sau đó kiểm tra xem mã hóa của db của bạn là gì, sau đó kiểm tra xem mã hóa của các mẫu jasperreports của bạn là gì. ghi nhớ rằng oracle jdbc có vấn đề chuyển đổi một số ký tự đặc biệt từ ms thành unicode –

1

Nếu bạn muốn thoát khỏi nhân vật đặc biệt như XML <, > bạn có thể sử dụng CDATA:

01.
<staticText> 
    <reportElement x="0" y="0" width="100" height="14"/> 
    <textElement/> 
     <text><![CDATA[This is a test:<     ]]></text> 
</staticText> 

Các ký tự đặc biệt như é, â, è sẽ hoạt động tốt nếu bạn chỉ định mã hóa ký tự ở đầu tệp jrxml và mã hóa tệp chính xác.

<?xml version="1.0" encoding="UTF-8"?> 

Nếu báo cáo được xuất cho thấy các ký tự không hợp lệ, bạn nên kiểm tra xuất khẩu jasper. Ví dụ để xuất pdf có thể tìm thông tin here.

1

Lưu tệp jrxml trong mã hóa UTF-8 không giải quyết được sự cố, vì tệp .jrxml được biên dịch thành tệp .jasper và nó mất thông tin về mã hóa đã sử dụng. Báo cáo cuối cùng sau đó thiếu các ký tự đặc biệt.

Sự cố được giải quyết khi sử dụng ký tự thoát/u00XX bên trong thẻ XML CDATA. Trong trường hợp này, các ký tự đặc biệt có trong tệp PDF đầu ra. Thẻ CDATA bên ngoài là các ký tự thoát không được diễn giải chính xác.

Các vấn đề liên quan