2011-04-12 115 views
8

我有一個從右到左的HTML頁面。當我不使用任何文檔類型時,我的數字是阿拉伯語/波斯語,但是當我使用嚴格模式時,他們轉向使用英語。如何使用嚴格的文檔類型在HTML頁面中查看阿拉伯語/波斯語數字?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Final//EN"> 

之前添加的文檔類型:

Before adding doctype

加入DOCTYPE後:

After adding doctype

我也添加了這些元標籤到我的網頁:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<meta http-equiv="Content-Language" content="fa" /> 

那麼如何在嚴格的文檔類型(在IE中因爲Firefox不顯示阿拉伯數字)在頁面中查看阿拉伯數字?

+1

哪個瀏覽器?哪種文檔類型?你能向我們展示一個例子嗎? – 2011-04-12 13:29:24

+0

您使用的是哪種doctype,*是*您的數據實際上是UTF-8編碼的?波斯人來自哪裏,他們在文件中?需要更多信息。 – 2011-04-12 14:12:45

+0

以UTF-8保存的頁面。我只是將「方向」改爲「rtl」,即以波斯文顯示數字。如果我將它更改回「ltr」號碼將是英文。 – Mahdi 2011-04-12 14:18:31

回答

1

這個工作對我來說,無論文本方向(在Chrome,Safari瀏覽器,Firefox和Opera):(省略content-language,因爲這裏是沒有必要的)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Final//EN"> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <style type="text/css"> 
      body { direction: rtl; } 
     </style> 
    </head> 

    <body> 
     ۴۲ 
    </body> 
</html> 

+0

在ie9和chrome中不起作用 – Mahdi 2011-04-12 14:44:55

+0

@mahdi它肯定可以在Chrome中使用。什麼是您的瀏覽器版本?您是否使用正確的編碼保存文件?我不能真正爲IE9說話(說實話我對MISE並不在意),但我並不相信MSIE會在沒有任何提示的情況下將某些Unicode字符轉換爲完全不相關的字符。你是否可以安裝一個插件來自動實現Farsi =>英文翻譯? – 2011-04-12 15:04:06

+0

我使用Chrome 10是的,我用UTF-8 – Mahdi 2011-04-12 15:11:12

3

假設你想要一個XHTML 1.0 Strict標準文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fa" lang="fa" dir="rtl"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>Title here</title> 
    </head> 

    <body> 
    <p>Text here</p> 
    </body> 
</html> 

這裏有一個對應的HTML 4.01嚴格的文檔:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="fa" dir="rtl"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Title here</title> 
    </head> 

    <body> 
    <p>Text here</p> 
    </body> 
</html> 

下面是一個等效的HTML5頁面,僅用於比較目的。

<!DOCTYPE html> 
<html lang="fa" dir="rtl"> 
    <head> 
    <meta charset="UTF-8" /> 
    <title>Title here</title> 
    </head> 

    <body> 
    <p>Text here</p> 
    </body> 
</html> 
+0

這個工程只是IE7及更早 – Mahdi 2013-11-09 08:47:21

+0

保存它HTML5沒有工作對我來說鉻63 – Diamond 2017-12-14 07:00:34

6

這裏是一個小的JavaScript代碼,轉換一個1234串1234串

var map = 
    [ 
    "&\#1632;","&\#1633;","&\#1634;","&\#1635;","&\#1636;", 
    "&\#1637;","&\#1638;","&\#1639;","&\#1640;","&\#1641;" 
    ]; 

    function getArabicNumbers(str) 
    { 
     var newStr = ""; 

     str = String(str); 

     for(i=0; i<str.length; i++) 
     { 
      newStr += map[parseInt(str.charAt(i))]; 
     } 

     return newStr; 
    } 
+1

這個工作對我來說 <腳本類型=「文/ JavaScript的」> \t VAR地圖= [ \t 「&\#1632;」, 「&\#1633;」, 「&\#1634;」, 「&\#1635;」, 「&\#1636;」, 「#1637;」,「#1639;」,「#1639;」,「&#1640;」,「&#1641;」 ]; 函數getArabicNumbers(str) { var newStr =「」; str = String(str); (i = 0; i MoizNgp 2014-03-27 14:40:34

2

Firefox的默認渲染號拉丁 變更此設置到地址欄的Firefox和輸入about:config中 這個頁面是firefox的高級設置 找到這行「bidi.numeral」並雙擊它 如果設置值爲「1」firefox的渲染文本看上下文。如果文字是波斯人,則將數字呈現給波斯人。 如果設定值「4」 alwase渲染位數波斯

+0

謝謝你,我的朋友。有沒有這樣的鉻? – Hosein 2013-05-28 01:14:33

0

如果你使用波斯字體像「BNazanin」和寫:

http-equiv="Content-Type" content="text/html; charset=UTF-8"
在meta標籤 和http-equiv="Content-Language" content="fa"

然後您可以看到波斯語的數字。

如果您在html頁面的某些標籤中使用lang='En',那麼該標籤中的數字將以英文顯示。

+0

問題是使用像tahoma或arial這樣的默認字體 – Mahdi 2013-11-09 08:43:46

1
var map_format_arabic = ["&\#1632;","&\#1633;","&\#1634;","&\#1635;","&\#1636;", "&\#1637;","&\#1638;","&\#1639;","&\#1640;","&\#1641;"]; 

$.each($('.format_arabic'), function() { 
    var n=$(this).text().replace(/\d(?=[^<>]*(<|$))/g, function($0) { return map_format_arabic[$0]}); 
    $(this).html(n); 
}); 
0

試試這個,希望可以幫助你;)

之間

<script language="JavaScript" type="text/javascript"> 


var replaceDigits = function() { 
var map = 
[ 
"&\#1632;","&\#1633;","&\#1634;","&\#1635;","&\#1636;", 
"&\#1637;","&\#1638;","&\#1639;","&\#1640;","&\#1641;" 
] 

document.body.innerHTML = 
document.body.innerHTML.replace(
/\d(?=[^<>]*(<|$))/g, 
function($0) { return map[$0] } 
); 
} 

</script> 

然後在身體標記插入結束這樣的:

<script type="text/javascript"> 
window.onload = replaceDigits 
</script> 
2

這是查看很簡單阿拉伯文/波斯文數字在HTML頁面中。

我通過改變字體名稱解決同樣的問題,

在我來說,我想顯示相同的字符向所有用戶

,你可以選擇包含阿拉伯Hndi數字的字體和導入使用CSS(@字體面)則簡單地使用它,

也能正常工作的所有主流瀏覽器(IE火狐.. ..鉻)

look at this result

這裏是頁面的完整代碼:

<html> 
<head> 

</head> 
<body> 
<style type="text/css"> 

@font-face { 
    font-family: ArabicTwo_Bold; 
    src: url(ArabicTwo_Bold.eot); 
} 

@font-face { 
    font-family: ArabicTwo_Bold; 
    src: url(ArabicTwo_Bold.ttf); 
} 


div , input { 
font-family: ArabicTwo_Bold; 
} 
</style> 


<input type='text' value='هذا نص هندي 123456 ' /> 
<div> هذا نص هندي 123456 </div> 
</body> 
</html> 
0

可以英文數字轉換爲模板使用此JavaScript代碼波斯位數:

<script type="text/javascript"> 
    var replaceDigits = function() { 
     var map = ["&\#1776;","&\#1777;","&\#1778;","&\#1779;","&\#1780;","&\#1781;","&\#1782;","&\#1783;","&\#1784;","&\#1785;"] 
     document.body.innerHTML = document.body.innerHTML.replace(/\d(?=[^<>]*(<|$))/g, function($0) { return map[$0]}); 
    } 
    window.onload = replaceDigits; 
    </script> 

,也是你的身體標記應該有一個onload事件屬性如下:

<body onload="replaceDigits()"> 
相關問題