//Big5亂碼檢查

//JavaScript部分
function CheckBig5(myInput)
{
var str = document.getElementById(myInput).value;
var strReplace = "";
for( i=0; i < str.length; i++ )
{ strReplace += str.charAt(i).replace("?", "◎"); }

document.getElementById(myInput).value = escape(strReplace);
}

//ASP.NET部分
//+號在UrlDecode後會變成空白,所以要先轉成別的符號
txtTitle.Text = txtTitle.Text.Trim().Replace("+" ,"●");
string myString = Server.UrlDecode(txtTitle.Text.Trim()).Trim();
//這邊的Default會隨環境改變而變,這邊是用Big5
//編碼後如果是不支援的字體會變成問號
//所以在最上面的JavaScript部份才要先將正常的問號變成別的符號
byte[] myBytes = System.Text.Encoding.Default.GetBytes(myString);
myString = System.Text.Encoding.Default.GetString(myBytes);


if ( myString.IndexOf("?") >= 0 )

  myCheck = false;
}


myString = myString.Replace("●" ,"+");
myString = myString.Replace("?", "亂");
txtTitle.Text        = myString.Replace("◎","?");


if (!myCheck)
{
   Response.Write("內容有亂碼,已將亂碼改為亂");
}

 

全檢查版
------------------JavaScript---------------------
// 將畫面上的輸入欄位做跳脫字元的動作
function EscapeInput(EscapeMode)
{
// 將畫面上所有的TextBox的多行模式也就是TextArea都做跳脫的動作
var myTextArea = document.getElementsByTagName('textarea');
for(var i = 0 ; i <myTextArea.length ; i++)
{
var strReplace = '';
var myTextAreaValue = myTextArea[i].value;

for( var j=0; j < myTextAreaValue.length; j++ )
{
strReplace += myTextAreaValue.charAt(j).replace("?", "◎");
}

myTextArea[i].value = escape(strReplace);
}

// 將畫面上所有的TextBox都做跳脫的動作
var myInput = document.getElementsByTagName('input');
for(var i = 0 ; i <myInput.length ; i++)
{
if ( myInput[i].type == 'text' && myInput[i].getAttribute('readonly') != true )
{
var strReplace = '';
var myInputValue = myInput[i].value;

for( var j=0; j < myInputValue.length; j++ )
{
strReplace += myInputValue.charAt(j).replace("?", "◎");
}

myInput[i].value = escape(strReplace);
}
}
}


-----------------ASP.NET---------------------------
// 檢查是否有不支援的亂碼
public static void CheckInvalidCode(ControlCollection myControls)
{
bool HasInvalidCode = false;


foreach (Control myCtr in myControls)
{
if (myCtr.HasControls())
{
CheckInvalidCode(myCtr.Controls);
}


if (myCtr is TextBox)
{
((TextBox)myCtr).Text.Trim().Replace("+" ,"●");
string myString = HttpUtility.UrlDecode(((TextBox)myCtr).Text.Trim()).Trim();


byte[] myBytes = System.Text.Encoding.Default.GetBytes(myString);
myString = System.Text.Encoding.Default.GetString(myBytes);


if ( myString.IndexOf("?") >= 0 )

HasInvalidCode = true;
}


myString = myString.Replace("●" ,"+");
myString = myString.Replace("?", "亂");
((TextBox)myCtr).Text  = myString.Replace("◎","?");
}
}


if( HasInvalidCode )
{
Response.Write("輸入內容有亂碼,已將亂碼改為亂");
}
}

 

welkingunther 發表在 痞客邦 PIXNET 留言(0) 人氣()