使用 csscontent属性,我试图在元素之后放置一个 HTML 实体。
这是我的 HTML:
<table id="tic" cellpadding="0" cellspacing="0" border="5" bordercolor="black" bordercolorlight="gray" bgcolor="white">
<tr>
<td width="55" height="55" class="x"></td>
<td width="55" height="55" class="o"></td>
<td width="55" height="55" class="x"></td>
</tr>
<tr>
<td width="55" height="55" class="o"></td>
<td width="55" height="55" class="x"></td>
<td width="55" height="55" class="o"></td>
</tr>
<tr>
<td width="55" height="55" class="x"></td>
<td width="55" height="55" class="o"></td>
<td width="55" height="55" class="x"></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
还有我的 CSS:
table{
text-align:center;
font-size:2em;
font-weight:bold;
}
td.o:after{
content:"○";
font-weight:bold;
}
td.x:after{
content:"✖"
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,而不是得到 ? 性格和?字符,我得到实体名称。
我该如何解决这个问题 …
我正在使用 Json.net 反序列化 Web API 调用接收到的 json 数据。某些字段通常具有 html 编码的字符,例如"或&如何在反序列化期间自动解码此字符?
我得出了两种可能的解决方案:
调用System.Web.HttpUtility.HtmlDecode()属性设置器,如:
public string Title
{
set
{
title = System.Web.HttpUtility.HtmlDecode(value);
}
}
Run Code Online (Sandbox Code Playgroud)编写自定义JsonConverter的呼叫System.Web.HttpUtility.HtmlDecode()的ReadJson()方法:
public class HtmlEncodingConverter : Newtonsoft.Json.JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeof(String);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return System.Web.HttpUtility.HtmlDecode((string)reader.Value);
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteRawValue(System.Web.HttpUtility.HtmlEncode((string)value));
}
}
Run Code Online (Sandbox Code Playgroud)但是是否有任何内置解决方案允许在 …
ajax 请求调用以下操作,其响应为 JSON:
\Yii::$app->response->format = 'json';
if($userId){
$dataProvider = new ArrayDataProvider([
'allModels' => Templates::getTemplates($userId,'n'),
]);
$response = $this->renderAjax('index', ['dataProvider' => $dataProvider,]);
return ['status'=>true,'data'=>$response,'total'=>count($dataProvider)];
}
Run Code Online (Sandbox Code Playgroud)
在这个action的View中,有一个GridView Widget:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'id',
[
'attribute'=> 'template_name',
'label'=>'Test Name',
'value' => function($data){
$url = Yii::$app->urlManager->createUrl('templates/get-tests')."&id=".$data->id;
return '<a href="'.$url.'" title="'.Html::encode($data->template_name).'">'.Html::encode($data->template_name).'</a>';
}
],
[
'attribute'=> 'template_date',
'label'=>'Beginning Date'
],
[
'attribute'=> 'template_expire_time',
'label'=>'End Date'
],
'user_id',
],
]); ?>
Run Code Online (Sandbox Code Playgroud)
但这对模板名称的 html 值进行编码。例如:测试 <a href="test.php">测试</a>
我不需要这种编码。请帮我解决这个问题。
在我的 html 源代码中,我有一些特殊符号,例如版权符号<meta content="\xc2\xa9 Copyright... />
对于某些文本编辑器,这些符号如上所示正确显示,但在 VS Code 上,我将其视为 \xef\xbf\xbd,保存文件后,该符号将显示为 \xc3\xaf\xc2\xbf\xc2\xbd和其他编辑器上的 \xef\xbf\xbd 。
\n\n如果我在 VS Code 上显式粘贴 \xc2\xa9 并保存它,那么在另一个文本编辑器上它将被保存为 \xc3\x82\xc2\xa9。
\n\n我该如何解决这个问题?我应该怎么办?
\n我有一个文本区域,我想将用户输入的文本存储在数据库中,其中html格式如段落,编号列表.我正在使用HTMLencode和HTMLdecode.
我的代码示例如下:
string str1 = Server.HtmlEncode(TextBox1.Text);
Response.Write(Server.HtmlDecode(str1));
Run Code Online (Sandbox Code Playgroud)
如果用户输入带有2个段落的文本,则str1在段落之间显示字符\ r \n\r \n.但是当它将它写入屏幕时,只需在第1段附加第2段.我正在解码它,为什么不打印2段?
我的公司要求我们的ASP.NET代码在发布代码之前通过Fortify 360扫描.我们到处使用AntiXSS来清理HTML输出.我们还验证输入.不幸的是,他们最近更改了Fortify正在使用的"模板",现在它将我们所有的AntiXSS调用标记为"糟糕验证".这些调用正在执行AntiXSS.HTMLEncode(sEmailAddress).
任何人都知道什么会满足Fortify?它标记的很多东西都是输出,其中值来自数据库而根本不是来自用户,所以如果HTMLEncode不够安全,我们根本不知道是什么!
我不确定处理这个的最佳方法.在我的索引视图中,我显示了一个包含在其中的消息TempData["message"].这允许我在来自另一个操作时向用户显示某些错误或信息性消息(例如,如果用户在没有访问权限时尝试输入编辑操作,则会将其踢回索引,并显示消息"您无权编辑此数据").
在显示消息之前,我跑了Html.Encode(TempData["message"]).但是,我最近遇到的问题是,我希望能够通过换行符(<br>)分隔出更长的消息.不幸的是(显然),<br>得到的编码Html.Encode因此不会导致实际的换行符.
如何在Html编码字符串中正确处理换行符?
从.NET 4开始,可以使用<%:%>语法对文本进行HTML编码.
在转发器中,我使用以下语法来显示数据
<%# DataBinder.Eval(Container.DataItem, "fieldlabel")%>
Run Code Online (Sandbox Code Playgroud)
我知道在转发器中编码输出的唯一方法是使用"Server.HtmlDecode".是否可以在转发器中使用新的<%:%>,只需与数据绑定结合使用,这样我就可以删除丑陋的HtlmDecode语法.或者是一种扩展方法,我唯一的选择是提高可读性?
我将HTML和文本数据以原始格式存储在我的数据库表中 - 但是我在使其正确输出时遇到了一些问题.以下是存储在表AS IS中的一些示例数据:
<p>Professional Freelance PHP & MySQL developer based in Manchester.
<br />Providing an unbeatable service at a competitive price.</p>
Run Code Online (Sandbox Code Playgroud)
要输出这些数据我做:
echo $row['details'];
Run Code Online (Sandbox Code Playgroud)
这会正确输出数据,但是当我执行W3C验证器检查时它会说:
character "&" is the first character of a delimiter but occurred as data
Run Code Online (Sandbox Code Playgroud)
所以我尝试使用htmlemtities,htmlspecialchars但这只会导致HMTL标签在页面上输出.
这样做的正确方法是什么?
我知道Man Walking的HTML实体如下:
🚶
Run Code Online (Sandbox Code Playgroud)
这在浏览器中渲染得很好:
???
Run Code Online (Sandbox Code Playgroud)
但是,女性散步的HTML实体是什么?
???
Run Code Online (Sandbox Code Playgroud)